EVEmu Wiki c6wiki https://wiki.evemu.dev/wiki/Main_Page MediaWiki 1.35.1 first-letter Media Special Talk User User talk EVEmu Wiki EVEmu Wiki talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Module Module talk Category:Wikipedia progress templates 14 173 253 2014-01-25T21:41:12Z Wikipedia_Templates>Enterprisey 0 Added link to template wikitext text/x-wiki {{template category|description=Templates indicating progress in various Wikipedia tasks.}} See also {{tl|Progress templates}}. <!--Categories--> [[Category:Wikipedia notification templates]] e5e5cafdd7c520254459eb9b8406d7972e02bebf Template:Icon 10 192 291 2015-01-23T10:29:55Z Wikipedia_Templates>Mr. Stradivarius 0 switch this to use [[Module:Icon]] wikitext text/x-wiki {{#invoke:Icon|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> bd5b855953c5eec9d9c48400aa39315cb4218558 Category:Mbox and messagebox templates 14 171 249 2015-02-17T17:23:24Z 195.147.24.214 0 category wikitext text/x-wiki {{Template category | type = function | description = '''{{tlbare|Mbox}}-based and Mbox-like messagebox templates.''' }} [[Category:Box templates]] [[Category:Wikipedia administration templates]] [[Category:Wikipedia metatemplates]] eac6cec6b7dedd0da2451f8e962541bc6e020f99 EVEmu Developers Hub 0 14 26 2016-06-06T09:58:57Z EVEmu_Developers_Hub>Pete Hines Right Hand 0 wikitext text/x-wiki == EVEmu Development == So, you want to develop for the EVEmu project, eh? Well great! We NEED as many experienced C++ coders as we can get. This page is your starting point for learning the code base, connecting with the community <nowiki> </nowiki>of developers, getting access to tools and resources you'll need to help develop for the EVEmu project. People new to developing with EVEmu should start with the Getting Started section. == Getting started == * [[Getting Started]] * [[Development Team]] * [[Development Practices]] * [[Source Code]] 7d0b9e387a96c1d68562f6a1db00bb099e6e9902 Big 0 202 311 2016-06-06T10:39:59Z Crucible_Project_Status>Pete Hines Right Hand 0 Created page with "<span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude>" wikitext text/x-wiki <span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude> 921a29fc5d6c9a23b246400fe247ba4f2e0f2aaf Template:Big 10 188 315 2016-06-06T10:39:59Z Crucible_Project_Status>Pete Hines Right Hand 0 Created page with "<span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude>" wikitext text/x-wiki <span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude> 921a29fc5d6c9a23b246400fe247ba4f2e0f2aaf 283 2016-11-21T11:09:43Z Wikipedia_Templates>Materialscientist 0 Changed protection level for "[[Template:Big]]" ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite)) wikitext text/x-wiki <span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude> 921a29fc5d6c9a23b246400fe247ba4f2e0f2aaf Template:Progress bar 10 187 317 2016-06-06T10:44:25Z Crucible_Project_Status>Pete Hines Right Hand 0 wikitext text/x-wiki <div style=" width:{{{width|75%}}}; {{#ifeq: {{{center|yes}}} | yes | margin:auto; text-align:center;}}"> {{#ifeq: {{{header|yes}}} | yes | <p> {{Big|1= '''{{#expr: ( {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}}) * 100 round 1}}%''' }} {{{text|completed <small>(estimate)</small>}}} </p> }} <p style="border:{{{border|1px solid rgb(41, 38, 38)}}}; padding:{{{padding|1px}}}; overflow:hidden;"> <span style=" width: {{#expr: {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height: {{{height|10}}}px; background:{{{color1|#5FDB00}}}; float:left; ">&nbsp;</span> <span style=" width:{{#expr: 100 - {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height:{{{height|10}}}px; background:{{{color2|#3a3a3a}}}; float:left; ">&nbsp;</span> </p> </div><noinclude>{{Documentation}}</noinclude> 139f6bde12d2addd430017a1e6d704879af6b6f9 281 2019-06-26T13:04:10Z Wikipedia_Templates>Born2bgratis 0 Grays from the [https://design.wikimedia.org/style-guide/visual-style_colors.html Wikimedia palette] and a green that’s analogous to Green50 wikitext text/x-wiki <div style=" width:{{{width|75%}}}; {{#ifeq: {{{center|yes}}} | yes | margin:auto; text-align:center;}}"> {{#ifeq: {{{header|yes}}} | yes | <p> {{Big|1= '''{{#expr: ( {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}}) * 100 round 1}}%''' }} {{{text|completed <small>(estimate)</small>}}} </p> }} <p style="border:{{{border|1px solid #c8ccd1}}}; padding:{{{padding|1px}}}; overflow:hidden;"> <span style=" width: {{#expr: {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height: {{{height|2}}}px; background:{{{color1|#00af32}}}; float:left; ">&nbsp;</span> <span style=" width:{{#expr: 100 - {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height:{{{height|2}}}px; background:{{{color2|#eaecf0}}}; float:left; ">&nbsp;</span> </p> </div><noinclude>{{Documentation}}</noinclude> e304726348924b4418b697a00b0a48e931998e4f Main Page/Server Projects Links 0 23 44 2016-06-11T22:39:29Z Server_Project_Links>Pete Hines Right Hand 0 Created page with "'''Use these links if you want to build the server:''' * ACTIVE BRANCHES (In development phase) ** '''[[:Category:Crucible|Crucible]]'''" wikitext text/x-wiki '''Use these links if you want to build the server:''' * ACTIVE BRANCHES (In development phase) ** '''[[:Category:Crucible|Crucible]]''' cad895ecef2ac7947cced6702cc3b826b4c98490 Main Page/EVEmu Documentation Links 0 16 30 2016-06-11T22:49:23Z EVEmu_Documentation_Links>Pete Hines Right Hand 0 Created page with "'''Use these links if you want to learn how game features are implemented on EVEmu's server and learn about the backend framework that <nowiki> </nowiki>the server needs to d..." wikitext text/x-wiki '''Use these links if you want to learn how game features are implemented on EVEmu's server and learn about the backend framework that <nowiki> </nowiki>the server needs to do its job:''' * [[:Category:Users Guide|User's Guide]] * [[:Category:Game Operation|Game Operation]] * [[:Category:EVE Database|EVE Database]] * [[:Category:EVEmu API Server|EVEmu API Server]] * 15e9fc79c0734fd0d576f94596bb2355c8524d81 Quick Start Guide 0 21 40 2016-06-12T23:47:59Z Quick_Start_Guide>Pete Hines Right Hand 0 /* Server configuration (From source) */ wikitext text/x-wiki == '''Client configuration''' == '''Get the Client [http://downloads.yzs.me/evemu/ >>> DOWNLOAD HERE <<<]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://github.com/bluepatcher/blue_patcher >>> DOWNLOAD HERE <<<] '''and follow the instructions in README.md. Your client is now ready to run. <div style="background: rgb(38, 52, 62) none repeat scroll 0% 0%; padding: 5px;">'''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.</div> == '''Server configuration (From source)''' == <div style="background: rgb(38, 52, 62) none repeat scroll 0% 0%; padding: 5px;"> '''NOTE:''' * ''%serverRoot%'' is where the server is installed. * ''%devRoot%'' is where the development files are located. * These may be the same location but that is not necessary </div> '''SERVER SETUP:''' # Create the directories '''%serverRoot%/etc/''' and '''%serverRoot%/log/''' # Copy the '''%devRoot%/evemu_server/utils/devtools.raw''' file to '''%serverRoot%/etc/''' # Open a command prompt and go to the directory '''%devRoot%/evemu_server/sql/utils/''' # Run the script merge-ofic-updates.sh if your running Linux or merge-ofic-updates.bat on windows '''MYSQL SETUP:''' Get a copy of the crucible static data dump [http://eve.alasiya.net/files/cruc/cru16-mysql5-v1.sql.bz2 cru16-mysql5-v1.sql.bz2] and extract the file '''cru16-mysql5-v1.sql''' to '''%serverRoot%'''. Then open a mysql client and execute the following commands in this order:  create database evemu; use evemu; source %serverRoot%/cru16-mysql5-v1.sql; source %devRoot%/evemu_server/sql/evemu_dynamic-dump.sql; source %devRoot%/evemu_server/sql/evemu_static-dump.sql; source %devRoot%/evemu_server/sql/ofic-updates.sql; source %devRoot%/evemu_server/sql/prime_db.sql; source %devRoot%/evemu_server/sql/liveupdates.sql; source %devRoot%/evemu_server/sql/market_npc.sql; ALTER TABLE srvAccountApi AUTO_INCREMENT=1000000; ALTER TABLE srvAccount AUTO_INCREMENT=1; INSERT INTO srvAccount (accountID, accountName, role, password, online, banned) VALUES(NULL, 'YOUR_ACCOUNT_NAME', 5003499186008621056, 'YOUR_PASSWORD', 0, 0); GRANT ALL ON evemu.* TO EVEMU_USER@localhost IDENTIFIED BY 'EVEMU_PASSWORD'; In the last two lines replace '''YOUR_ACCOUNT_NAME''' with the account name you want to log into the game with, and '''YOUR_PASSWORD''' with the password you will use. Change '''EVEMU_USER''' to the username you want the server to log into you database with, and '''EVEMU_PASSWORD''' to the password the server should use. '''SERVER CONFIGURATION FILE''' Create the server config file '''%serverRoot%/etc/eve-server.xml. '''Make sure to set the proper database username and password. '''FINAL STEP - SERVER COMPILATION''' sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 sudo apt-get install libmysqlclient-dev == Test and Report! == Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.<br />You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.<br />[http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 7ea367630487a239e5889166d1e900e176bc9e0b Building on Windows with WSL 0 5 8 2016-08-24T00:59:08Z Building_on_Windows_with_WSL>CarlBarker 0 Add libmysqlclient-dev so cmake doesn't try downloading it. wikitext text/x-wiki WIP Windows Subsystem for Linux (WSL) is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10. As such this guide will only work on Windows 10. Start by installing and enabling WSL as per the MSDN [https://msdn.microsoft.com/en-us/commandline/wsl/install_guide installation guide]. Now open Bash on Ubuntu on Windows. Get some dependencies sudo apt install build-essential git cmake libmysqlclient-dev Clone the repository. git clone https://github.com/evemuproject/evemu_server cd evemu_server Make a build directory mkdir build cd build Generate Makefile cmake .. Call make make Everything should compile just fine. 245fbb10d2135ab1d959cda2e7a07f7fa839c6a5 Template:SUBJECTSPACE formatted 10 198 303 2017-03-25T12:38:48Z Wikipedia_Templates>Jo-Jo Eumerus 0 Changed protection level for "[[Template:SUBJECTSPACE formatted]]": Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template edi... wikitext text/x-wiki {{#switch: {{SUBJECTSPACE}} | {{ns:0}} = article | {{ns:4}} = Wikipedia page | {{ns:2}} | {{ns:12}} = {{lc:{{SUBJECTSPACE}}}} page | #default = {{lc:{{SUBJECTSPACE}}}} }}<noinclude> {{Documentation}} </noinclude> 4f84e8059ec30e2a96684cbcd53b80e19ff9f1e5 EVEmu Connect 0 12 22 2018-07-03T05:10:08Z EVEmu_Connect>Sau226 0 Creating evemu page wikitext text/x-wiki ==IRC== ==Teamspeak== 758a79b47e57db21fce1f381eb6eeda7fd249e33 EVEmu Account Roles 0 11 20 2018-07-03T05:46:29Z EVEmu_Account_Roles>Sau226 0 Adding categories wikitext text/x-wiki ==User== ==Game Master (GM)== ==Administrator== [[Category:Users Guide]] 57079abe8dfcb38f12459138eb64d7b1182dc0a2 Wormholes 0 26 50 2018-07-07T09:37:18Z Wormholes>Sau226 0 Creating page properly wikitext text/x-wiki Wormholes are rifts in space that link 2 different star systems. They are similar to stargates in that ther allow ships to move between star systems but unlike [[stargates]] thay are non permanent. Their life is rather short since they collapse after a set time or after a set amount of ships have passed through them. ==Discovering wormholes== (WIP) ==Wormhole destinations== (WIP) ==Chat in wormholes== (WIP) ==Identification== (WIP) ==Size and restrictions== (WIP) ==Project status== (WIP) 66b7a1d3aab98ab9991d0d8df1f8527028f7b8fa Getting Started 0 17 32 2018-07-07T09:39:52Z Getting_Started>Sau226 0 Rewrite wikitext text/x-wiki == Getting Started == This page is for people who want to develop EVEmu, if you want to install EVEmu on your system, please go here. '''Testing:''' * Learn more about [[Testing EVEmu]] * [[Eve-tool]] '''Writing Code:''' * You need to know the C or C++ programming language to write code for EVEmu. Learn C/C++ at these locations: ** CPlusPlus.com [https://web.archive.org/web/20141003003235/http://www.cplusplus.com/] *CProgramming.com [https://web.archive.org/web/20141003003235/http://www.cprogramming.com/begin.html] *Source [[ Development Practices]] guide - check this out to see how we like contributing developers to format their code *How to create and use packets in EVEmu - Check this if you don't know how them work '''Packet formating:''' * EveMu [[xmlpktgen]] - How to format packets in XMLP and general information about xmlpktgen. == '''Learn about the EVEmu Codebase''' == * The [[The EVEmu Guide|EVEmu Guide]] - go here to learn about the EVEmu code base and how it's structured * The [[ EVEmu Database Guide|EVEmu Database Guide]] - go here to learn about how EVEmu uses and manages the back end MySQL database == '''Server development''' == * [[EVEmu Roadmap]] WIP Board - CONTAINS SHORT TERM/LONG TERM PROJECT PLAN - also has the list of active developers and what they are currently working on * EVEmu Project Tracking - this is the list of game features and their operational status in the most recent server builds == '''Installer Development''' == * EVEmu Installer == '''Database information''' == * Dumps distributed with EVEmu * Decoding the EVEmu MySQL Tables * Database Tools - information on tools used with the EVEmu database: [[ EVEmu Control Panel]] == '''Live information''' == 096e09f5c81fa1eb2c6d7c2e6f88185c45acbd52 EVEmu Control Panel 0 13 24 2018-07-07T12:30:11Z EVEmu_Control_Panel>Sau226 0 /* EVEmu Control Panel */ wikitext text/x-wiki == EVEmu Database Tools == Since EVEmu is a custom server that interacts with a vast MySQL database, we need tools to work with that database whether the server is running or not. So far, we've got one Database tool and that's '''DB Editor'''. == EVEmu Control Panel == EVEmu Control Panel is a rather simple tool created using Visual C# and can be built and debugged using the FREE Microsoft Visual Studio 2010 Express which you can download here, just install Visual C# 2010 Express. Created by '''Hurracane''', <nowiki> </nowiki>this tool connects the the EVEmu SQL database and provides several ways to interact with and change data stored within the database. These major feature categories are discussed in detail below. Get EVEmu Control Panel Source from Github [https://www.github.com/evemuproject/evemu_control_panel here] === SQL Settings - The Connection to Your Database === ''Development Status:'' '''FULLY OPERATIONAL''' '''Before you do anything with EVEmu Control Panel, you must connect it to your EVEmu database.''' This is done using the '''SQL Settings''' tab, which is the default view when the program is executed. Supply the Host (domain name or IP address), the '''username''' and '''password''' for mysql to allow access to your EVEmu database, the port number used by mysql, and the exact name of the EVEmu database. Once this information is entered, click the Connect button. EVEmu Control Panel will then try to connect and if successful, the Connect button will be depressed and disabled. Across the menu bar past the Help menu, you will also see some greyed text declaring "Connected To DB". You may now proceed to make use of the other tabs to interact and change data in your EVEmu database's tables. === Account and Character Editor === ''Development Status:'' '''OPERATIONAL, BUT NOT COMPLETE''' '''TO BE IMPLEMENTED:''' * Edit a character's station, solar system, region, constellation, and current ship location info <nowiki>*</nowiki> Edit ban/kick info on any character and/or account <nowiki>*</nowiki> Export an account or a character or an account and one or more of its characters into an XML file <nowiki> </nowiki>* Info saved: all character info, clone grade, skills, certifications, attributes, augmentations, bio, wallet balance <nowiki> </nowiki>* NO items owned are saved <nowiki> </nowiki>* NO ID values from database are saved, these are auto-regenerated and auto-assigned upon import to another database <nowiki>*</nowiki> Import an account or a character or an account and one or more of its characters from an XML file This tab is the quickest way to add an account to your EVEmu server and edit existing accounts. Accounts are added by supplying a username, a password, and a user role. This tab also allow the editing of any characters in your EVEmu server. === Item and Ship Editor === ''Development Status:'' '''OPERATIONAL, HOWEVER, IT MIGHT LACK SOME USEFUL FEATURES - LET US KNOW YOUR IDEAS!''' Upon first connecting to your database and entering the '''Item/Ship Editor''' tab, you'll see lots of blank fields. Start with the '''Category''' drop-down control. Select an Item Category, such as Ships or Modules, there are quite a few. Now you'll see two new controls and buttons above the list of items now populated in the window below and a new button labeled '''Edit Item'''. The '''Search on typeName''' control and button will let you type some text to search by '''typeName''' field in the list below to either get the one item you're interested or filter down the view. You also filter down results by entering partial typeID or you can get directly to an item by just entering the full typeID number into the '''Search on typeID''' control. Either text box will search on hitting ENTER or clicking the button to its right. This whole tab works like an interactive GUI for the following tables: '''invCategories''', '''invGroups''', '''invTypes''', '''dgmTypeAttributes''', and '''dgmTypeEffects'''. It allows you to view attributes and effects and general information on any item in the game universe by first selecting its category then either searching on a typeID or an item's name to get to it. Once you've identified an item you want to view or edit, either double-click its line in the results window or you can select it and click the '''Edit Item''' button below the results window. Once inside the Edit/view window for a single item, there are three tabs: '''Item Info''', '''Item Attributes''', and '''Item Effects'''. General info is in the first tab, attributes associated with this item are in the second tab, and effects associated with this item, if any, are found in the third tab. Only a very experienced developer or someone who understands the deeper inner workings of the EVE game should ever be editing this information, but feel free to browse it and learn what it means. More information on Attributes and Effects can be found on the [[ Game Operation|Game Operation]] page along with other aspects of how the game works. === Insurance Editor === ''Development Status:'' '''NON-OPERATIONAL''' This tab allows some kind of editing of Insurance information, but it has niot been implemented yet. === Race and Bloodline Editor === ''Development Status:'' '''OPERATIONAL''' === Seed Market === ''Development Status:'' '''FULLY OPERATIONAL''' '''TO BE IMPLEMENTED:''' * Change system and region selection behavior such that the list of individually selected systems is appended with the list of all systems that are gathered from the list of selected regions. This tab simply allows one to seed the '''market_orders''' table with sell orders for whatever items, modules, ships, skills, etc that one wants to make available to players in the game. That is where the simplicity ends as this one tab has the ability to create such far-reaching queries that it has been known to seemingly crash mysql or at least make it run so long that people kill the mysql daemon and thus kill their whole evemu database causing them to re-create it from scratch. (Trust me, I've done it.) '''WARNING: Before you make large queries using this tool, it is STRONGLY recommended that you do a mysql dump of your entire table or back it up some other way. THEN, if you need to seed large swaths of the market such as an entire region (or more) full of every item, you should un-check 'Apply query to database?' checkbox and copy the queries<nowiki> </nowiki>into a text file which you would then run using the mysql command line interface.''' To seed the market, follow these steps, which have choices to be made by you based on what kinds of items you want to seed and where you want to seed them. Selections start at the far left of the window and progress toward the right side of the window. Keep that in mind when following these instructions. 1. Select zero or more races in the Races selection box on the far left. Zero selected races is used to seed items, skills, ships, etc. that have NO race, i.e. their raceID is set to NULL in the '''invtypes''' table. Select one or more races to seed items, skills, ships, etc. from those selected race(s). 2. You may select one or more individual solar systems with the System selection box '''AND / OR''' you may select one or more individual regions with the Region selection box. Do note that if you select one or more individual systems AND one or more regions the list of systems in the selected regions will replace the list of individually selected systems. 3. With solar systems and/or regions selected, now you can select item categories with the Category selection box. You may select one or more simultaneously. 4. For each category selected, all items in that category will be listed in the Group selection box on the far right. You may select one or more or all of the entries in this selection box. 5. There is a pair of radio buttons you may use to select whether the market is seeded wsith BUY or SELL orders. 5. Now, you may wish to simply commit the INSERT query directly to the EVEmu database, however, there are some other options to consider. If you do not want to commit the INSERT query to your database at this time, the Query window below is there for you to copy the query for later use. In this case, simply un-check the check box then click the Seed Market button. If you do with the query to be committed to the database, leave this box checked, then click the Seed Market button. 6. Additionally, you can clear the query window by clicking the Clear Query button. 7. Because market seeding quries can become quite large very quickly, there are some query 'thinning' options you may want to consider. a. Use the 0% to 100% slider control to tell EVEmu Control Panel to thin out the final system list to some percentage of the selected systems that the makret query will affect. b. Use the security level controls to seed the selected market items into those systems with security level at and above or at and below the security level you supply in the text box. The systems seeded with market items will be a subset of the individual systems you selected or those in the regions you selected. This works separately and in conjunction with the percentage slider control. === Seed Asteroid Belts === ''Development Status:'' '''FUNCTIONAL''' There is an issue that has come with further testing of this feature and that is all asteroids spawned using the control panel have an ore total of 1. Using GM commands in-game to spawn asteroids will spawn with a 'reasonable' quantity of ore. So this feature is effectively broken. '''TO BE IMPLEMENTED''' * Provide controls and lists to first select systems (with a percentage slider to thin out the system list) and belts in which to seed asteroids and then checkboxes to selectg which ores to seed, sliders for each ore to select relative concentrations and finally a list control that allows the choice of what kind of physical arrangement of the asteroids in space you want with a size control to determine the overall dimensions of the arrangement. * Ideas for physical arrangements: crescent, line, cross, sphere, random x/y/z, any others? === === cb7f6ad29d1ecdd10407365aa0070a67ddf773a9 Template:Tag 10 180 267 2018-07-26T17:17:13Z Wikipedia_Templates>SMcCandlish 0 These are called attributes; no one who does HTML calls them "parameters". wikitext text/x-wiki <code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!-- Opening tag -->{{#switch:{{{2|pair}}} |c|close = |e|empty|s|single|v|void |o|open |p|pair = &lt;{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}|&#32;{{{params|{{{attribs}}}}}}}} }}<!-- Content between tags -->{{#switch:{{{2|pair}}} |c|close = {{{content|}}} |e|empty|s|single|v|void = &#32;&#47;&gt; |o|open = &gt;{{{content|}}} |p|pair = {{#ifeq:{{{1|tag}}}|!--||&gt;}}{{{content|...}}} }}<!-- Closing tag -->{{#switch:{{{2|pair}}} |e|empty|s|single|v|void |o|open = |c|close |p|pair = {{#ifeq:{{{1|tag}}}|!--|--&gt;|&lt;&#47;{{{1|tag}}}&gt;}} }}<!-- --></code><noinclude> {{Documentation}} </noinclude> eae208bc1612c834de697fa3ee9b343966cf8602 MySQL Setup 0 19 36 2018-08-23T12:25:58Z MySQL_Setup>Sau226 0 Import badly written script wikitext text/x-wiki # Linux Database configuration on Debian Linux (Jessie|Current Stable) Requirements * mysql-server-5.5 Install requirements from apt-get $ apt-get install mysql-server-5.5 Set MySQL Configuration options: $ nano /etc/mysql/my.cnf # Inside the [mysqld] section set settings per below * max_allowed_packet = 1000M * key_buffer = 256M # Inside [mysqldump] * max_allowed_packet = 1000M $ systemctl restart mysql Setup: $ git clone https://github.com/evemuproject/evemu_server.git evemu $ cd evemu $ cd sql $ wget http://eve.alasiya.net/files/cruc/cru16-mysql5-v1.sql.bz2 -O - | bunzip2 > cru16-mysql5-v1.sql $ cd utils $ bash merge-ofic-updates.sh Set MySQL Permissions: $ mysql -u root -p > CREATE USER 'evemu'@'%' IDENTIFIED BY 'evemu'; > GRANT USAGE ON *.* TO 'evemu'@'%' IDENTIFIED BY 'evemu' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; > CREATE DATABASE IF NOT EXISTS `evemu`; > GRANT ALL PRIVILEGES ON `evemu`.* TO 'evemu'@'%'; > EXIT; Change to the sql/ directory and execute: $ mysql -u evemu -p > use evemu; > source cru16-mysql5-v1.sql; > source ofic-updates.sql; > source evemu_static-dump.sql; > source evemu_dynamic-dump.sql; > source prime_db.sql; > source liveupdates.sql; > exit; ** TODO: Validate the PI tables before adding to official documentation. Check that the AUTO_INC value in the entity table is set to 140000000 $ mysql -u evemu -p > use evemu; > SHOW CREATE TABLE entity; > exit; Add your account into the DB $ mysql -u evemu -p > INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0); > exit; a5e97bc120f074ea01c54770e68f1e5b05c77118 Project Plan 0 20 38 2018-08-23T13:00:29Z Project_Plan>Sau226 0 Create stub for later update wikitext text/x-wiki Write project plan below if you're the dev in charge or someone like them 0d11d7e4445c5c52e393ff34478052982a8840f1 Recent Project Activity 0 22 42 2018-08-24T09:06:25Z Recent_Project_Activity>Sau226 0 Creating new page wikitext text/x-wiki [[File:Placeholder|video|right|300px]] [[File:Placeholder|right|300px]] Insert important activity here ==Insert Version Here== Insert version updates here ==Insert Version Here== Insert version updates here [[Category:Crucible]] b16a82bdc40bf4c5d1fcbd2036a1366fad163de6 List of Admin and GM Commands 0 18 34 2018-09-09T12:46:01Z List_of_Admin_and_GM_Commands>Sau226 0 Make GM commands forward slash ones wikitext text/x-wiki ==Game Master== {| |/ban<nowiki> </nowiki> (charName) |bans player's account from the server |- |/chatban (characterID) |bans character from channel |- |/create (itemID) [count] |Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- |/dogma (attribute) |change item attribute value |- |/entity (entityID) |unknown |- |/fit (itemID) |Fits selected item to active ship. |- |/getattr (itemID) (attributeID) |Retrieves attribute value. |- |/giveallskills (characterID) |gives all skills to character |- |/giveisk (entityID) (amount) |Give the specified amount of cash to the specified character. 0=self. |- |/giveskill (itemID) |gives skills to fit item. |- |/giveskills (itemID) |gives skills to character. |- |/goto (x) (y) (z) |Jump to the specified position in space. |- |/heal (entityID) |heal the character with the entityID |- |/kick (charName) |kicks [charName] from the server |- |/location |Gives you back your current location in space. |- |/online (entityID) |online all modules on the ship of the entityID. entityID=me=>online my modules |- |/pop (type) (key) (value) |Send an OnRemoteMessage. |- |/repairmodules (entityID) (itemID) |repair the modules of the character with the entityID |- |/search (text) |Search for items matching the specified query |- |/setattr (itemID) (attributeID) (value) |Sets attributeID of itemID to value. |- |/setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) |Change blueprint's attributes. |- |/spawn (typeID) |Spawn an NPC with the specified type. |- |/state |Sends DoDestinyUpdate SetState. |- |/syncloc |Synchonizes your location in client with location on server. |- |<nowiki>/tr [<entityID>|me] <locationID></nowiki> |Translocate the specified person to the specified entity |- |/translocate <entityID> <locationID> |Translocate the specified person to the specified entity |- |/unload (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unspawn (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unban (charName) |removes ban on player's account |- |/whois (characterName) |returns information on character |} ==Admin== ''To be written'' [[Category:User Guide]] 7a476698c0d238e91f9542621911981ab78bcae8 Module:Color contrast 828 200 307 2019-01-06T22:38:25Z Wikipedia_Templates>Johnuniq 0 fix unintended color2lum global error which is causing errors; clean whitespace Scribunto text/plain -- -- This module implements -- {{Color contrast ratio}} -- {{Greater color contrast ratio}} -- {{ColorToLum}} -- {{RGBColorToLum}} -- local p = {} local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' ) local function sRGB (v) if (v <= 0.03928) then v = v / 12.92 else v = math.pow((v+0.055)/1.055, 2.4) end return v end local function rgbdec2lum(R, G, B) if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255) else return '' end end local function hsl2lum(h, s, l) if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then local c = (1 - math.abs(2*l - 1))*s local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) ) local m = l - c/2 local r, g, b = m, m, m if( 0 <= h and h < 60 ) then r = r + c g = g + x elseif( 60 <= h and h < 120 ) then r = r + x g = g + c elseif( 120 <= h and h < 180 ) then g = g + c b = b + x elseif( 180 <= h and h < 240 ) then g = g + x b = b + c elseif( 240 <= h and h < 300 ) then r = r + x b = b + c elseif( 300 <= h and h < 360 ) then r = r + c b = b + x end return rgbdec2lum(255*r, 255*g, 255*b) else return '' end end local function color2lum(c) if (c == nil) then return '' end -- html '#' entity c = c:gsub("&#35;", "#") -- whitespace c = c:match( '^%s*(.-)[%s;]*$' ) -- unstrip nowiki strip markers c = mw.text.unstripNoWiki(c) -- lowercase c = c:lower() -- first try to look it up local L = HTMLcolor[c] if (L ~= nil) then return L end -- convert from hsl if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100) end -- convert from rgb if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$') return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B)) end -- convert from rgb percent if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100) end -- remove leading # (if there is one) and whitespace c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$') -- split into rgb local cs = mw.text.split(c or '', '') if( #cs == 6 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2]) local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4]) local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6]) return rgbdec2lum(R, G, B) elseif ( #cs == 3 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1]) local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2]) local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3]) return rgbdec2lum(R, G, B) end -- failure, return blank return '' end -- This exports the function for use in other modules. -- The colour is passed as a string. function p._lum(color) return color2lum(color) end function p._greatercontrast(args) local bias = tonumber(args['bias'] or '0') or 0 local css = (args['css'] and args['css'] ~= '') and true or false local v1 = color2lum(args[1] or '') local c2 = args[2] or '#FFFFFF' local v2 = color2lum(c2) local c3 = args[3] or '#000000' local v3 = color2lum(c3) local ratio1 = -1; local ratio2 = -1; if (type(v1) == 'number' and type(v2) == 'number') then ratio1 = (v2 + 0.05)/(v1 + 0.05) ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1 end if (type(v1) == 'number' and type(v3) == 'number') then ratio2 = (v3 + 0.05)/(v1 + 0.05) ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2 end if css then local c1 = args[1] or '' if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c1 = '#' .. c1 end if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c2 = '#' .. c2 end if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c3 = '#' .. c3 end return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';' end return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '' end function p._ratio(args) local v1 = color2lum(args[1]) local v2 = color2lum(args[2]) if (type(v1) == 'number' and type(v2) == 'number') then -- v1 should be the brighter of the two. if v2 > v1 then v1, v2 = v2, v1 end return (v1 + 0.05)/(v2 + 0.05) else return args['error'] or '?' end end function p._styleratio(args) local style = (args[1] or ''):lower() local bg, fg = 'white', 'black' local lum_bg, lum_fg = 1, 0 if args[2] then local lum = color2lum(args[2]) if lum ~= '' then bg, lum_bg = args[2], lum end end if args[3] then local lum = color2lum(args[3]) if lum ~= '' then fg, lum_fg = args[3], lum end end local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&#[Xx]23;', '#'), '&#35;', '#'), ';') for k = 1,#slist do local s = slist[k] local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' ) k = k or '' v = v or '' if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_bg = v, lum end elseif (k:match('^[%s]*(color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_fg = v, lum end end end if lum_bg > lum_fg then return (lum_bg + 0.05)/(lum_fg + 0.05) else return (lum_fg + 0.05)/(lum_bg + 0.05) end end --[[ Use {{#invoke:Color contrast|somecolor}} directly or {{#invoke:Color contrast}} from a wrapper template. Parameters: -- |1= — required; A color to check. --]] function p.lum(frame) local color = frame.args[1] or frame:getParent().args[1] return p._lum(color) end function p.ratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._ratio(args) end function p.styleratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._styleratio(args) end function p.greatercontrast(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._greatercontrast(args) end return p 1e399769117591366a63f62996c9a407077cc711 Source Code 0 24 46 2019-01-17T08:27:40Z Source_Code>Sau226 0 Edited list wikitext text/x-wiki == Main Repositories == === Crucible (The current development branch) === * https://github.com/evemuproject/evemu_server [https://github.com/evemuproject/evemu_server] === EVEmu Control Panel V2 === * https://github.com/evemuproject/evemu_control_panel_v2.0 [https://github.com/evemuproject/evemu_control_panel_v2.0] == Third party repositories == A list of '''community-driven repositories''' Crucible (The current development branch) (Active as of 06.2016) * https://github.com/eve-moo/evemu_server [https://github.com/eve-moo/evemu_server] Complete backup of all critical GitHub repos (synced from GitHub hourly) * https://gitlab.com/evemuproject 87eccbdab2e72f0f900204f6b4c07a0fbbb019d1 EVEmu Development 0 15 28 2019-01-18T07:49:56Z EVEmu_Development>Sau226 0 Forgot to add this info wikitext text/x-wiki Server code lives at https://github.com/evemuproject/evemu_server. You will need a GitHub account to contribute. Redundant backup of all source code lives at https://gitlab.com/evemuproject (synced from GitHub hourly) 2960ab83aabf932b0641d262a852f96ba737277e Connect with EVEmu Community 0 6 10 2019-01-19T02:16:16Z Connect_with_EVEmu_Community>Sau226 0 Edited IRC details wikitext text/x-wiki Official GitHub account (at present) is at https://github.com/evemuproject. Redundant backup lives at https://gitlab.com/evemuproject/evemu_server IRC details are on the [[IRC]] page (maybe merge if someone gets wiki admin?) TODO: Add other interface details ad50c72181cca9fcab27109a26dec068e6e88185 Testing EVEmu 0 25 48 2019-01-21T03:36:28Z Testing_EVEmu>Sau226 0 Update wikitext text/x-wiki If you don't want to write code, you can test EVEmu! Just follow directions above under EVEmu Crucible Server on the wiki home page to either build from source or get the nightly builds for your machine, modify the client, fire it up and start trying things. Experience with EVE live is very helpful since it will provide you with a reference for how in-game features are supposed to work. ==How to test== * Install EVEmu Server (TODO: Add instructions) * Install Client (TODO: Find binaries) * Connect and use all features (TODO: Specify features) 223ece6a41682cee187f8f270f71238b415ae9a5 Main Page 0 2 2 2019-01-23T02:57:57Z Main_Page>Sau226 0 Changed protection level for "[[Evemu Wikia]]": Absolutely no need to use the cascade feature. Downgrading protection to enable free and open editing (‎[edit=autoconfirmed] (indefinite) ‎[move=sysop] (indefinite)) wikitext text/x-wiki {{T/piece}} {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''[[:Category:Crucible|Crucible]] 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|IRC]] conversations and [[EVEmu Connect#Teamspeak|Teamspeak]] conversations, then [[Getting Started|get started learning the server codebase]] while you learn C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via IRC, Teamspeak, Forums]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} {{Legal}} 5ed0945b325b675734b8f1b98104582c911094d3 Main Page/Developer Links 0 8 14 2019-01-23T03:04:30Z Developer_Links>Sau226 0 Removed protection from "[[Main Page/Developer Links]]": No need for protection wikitext text/x-wiki '''Use these links to learn about development status and ongoing development work:''' * ACTIVE ** [[ Crucible Project Status]] | [[ Project Plan]] * RESOURCES ** [[ EVEmu Development]] ** [[ Getting Started]] ** [[ Development Team]] ** [[ Development Practices]] ** [[ Source Code]] ** [[ Testing EVEmu | Testing EVEmu ]] ** [[ Connect with EVEmu Community]] - IRC, Forums, Teamspeak * OLD BRANCHS [INACTIVE] ** [[ Incursion Project Status]] 9315e0efb6bb60f67e16f779ec8d257bad9b0a87 Crucible Project Status 0 7 12 2019-01-23T03:05:29Z Crucible_Project_Status>Sau226 0 Edited categories wikitext text/x-wiki {{NavBar|3|[[Main Page|HOME]]|[[EVEmu Development]]|Server Status (Crucuble)}} = Crucible = {{Progress bar|10|width=100%}} __TOC__ == Development Activities == Various developers are working on their little preferred areas and pet projects, so head on over to the [[EVEmu Development Team]] page to see what they are currently working on at the moment. == Features == This is a comprehensive list of medium to high level features of the entire game experience that we've identified so far are ones we want to work on to fully implement as best as we are able to. If anyone finds something missing from this list, please feel free to post something in the [[Forums|Development Forum]] or find a [[EVEmu Development Team|developer]] in [[IRC]]. {{-}} {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- |Login | class="working" |{{Progress bar|95|text=''}} ||Character Selection Screen still needs all character info changed from static data to data pulled from database (balance, current location, skill points, etc) |- | class="heading" colspan="3" |Character |- | - Selection | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Creation | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Skill Training | class="working" |{{Progress bar|100|text=''}} ||Working, with bugs |- | - Market Buying/Selling? | class="working" |{{Progress bar|100|text=''}} ||Testing Needed |- | - Modules | class="working" |{{Progress bar|5|text=''}} ||Very Early Development |- | - Fleets | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - Ship Combat | class="working" |{{Progress bar|5|text=''}} ||some aspects of targeting do work |- | - Chatting | class="working" |{{Progress bar|80|text=''}} ||Needs testing in Crucible Client |- | - EvE Mail | class="working" |{{Progress bar|50|text=''}} ||Broken (Failed to load mailbox) |- | - Mining | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Station Services | class="working" |{{Progress bar|50|text=''}} ||Mostly NOT working |- | - Missions | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - NPCs | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL - awaiting Modules |- | - POSs | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - Corporations/Alliances | class="working" |{{Progress bar|30|text=''}} ||PARTIALLY WORKS |- | - EvE Server API | class="working" |{{Progress bar|10|text=''}} ||OPERATIONAL, with limited API calls implemented |} == System Foundation Fundamentals == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Efficient, Accurate Packet Deciphering | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Further Mutex-ing | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Complete Object Attribute Management overhaul | class="working" |{{Progress bar|100|text=''}} ||COMPLETE |- | - Complete investigation of remaining database fields | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Proper spawning and item creating | class="working" |{{Progress bar|60|text=''}} ||Many Celestials, All Ships, All Items |- | - Item Handling | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Eliminate all compiler Warnings from the EVEmu solution | class="working" |{{Progress bar|100|text=''}} ||COMPLETE |- | - Complete rewrite/relook at [[Destiny]] | class="working" |{{Progress bar|0|text=''}} ||very buggy |} = All the items need to be verified under new Crucible Client = == General Interface Features == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Get Item Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Ship Info | class="working" |{{Progress bar|90|text=''}} ||Mostly working, for some ships for some reason, it shows nothing |- | - Get Skill Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Certification Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Character Info | class="working" |{{Progress bar|80|text=''}} ||Corporation info is not there, Standing and Decorations tabs broken |- | - Get NPC Corporation Info | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Get Player Corporation Info | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Account and Character Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Account Login | class="working" |{{Progress bar|75|text=''}} ||Mostly working, character select screen data is mostly hard-coded, requires database lookup |- | - Account Banning/Kicking | class="working" |{{Progress bar|60|text=''}} ||In Progress |- | - Character Creation | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character Deletion | class="working" |{{Progress bar|40|text=''}} ||Working, incomplete |- | - Character entrance to last location | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Skills Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Open Certificate Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Open Decorations Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Attributes Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Neural Remap | class="working" |{{Progress bar|0|text=''}} ||Implemented - NEEDS TESTING |- | - Open Augmentations Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Jump Clones Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Bio Window | class="working" |{{Progress bar|75|text=''}} ||unknown |- | - Open Employment History Window | class="working" |{{Progress bar|75|text=''}} ||unknown |- | - Open Standings Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Security Status Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Kill Rights Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Combat Log Window | class="working" |{{Progress bar|0|text=''}} ||unknown |} == Skills - Certificates - Implants - Clones == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Browse Skills to train | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Add skills to queue | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Filter skills that don't fit in queue time remaining | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Apply changes to skill queue | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Skill training time | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click add skill to queue from Skills Window in Character Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Certificate Awarding | class="working" |{{Progress bar|50|text=''}} ||You can claim certificates but it will not promopt you that you have a certificate waiting to be claimed. |} == NPC Station Services == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - In-station Guests List | class="working" |{{Progress bar|90|text=''}} ||Working, with bugs |- | - Can repackage ships/items | class="working" |{{Progress bar|0|text=''}} ||BROKEN - Needs investigation into existing code |- | - Can assemble ships from packaged state | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can leave/make active ships | class="working" |{{Progress bar|90|text=''}} ||Need more Testing, leaving ship in station is broken |- | - Can initiate and finalize trades of items/ships | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Repair Services | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Insurance Services | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Medical Services | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Clone upgrade | class="working" |{{Progress bar|100|text=''}} ||WORKING |- | - Clone transfer | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Jump clone installation | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Items window | class="working" |{{Progress bar|100|text=''}} ||Working |- | - Can merge items | class="working" |{{Progress bar|100|text=''}} ||Working |- | - Can trash/split/trade items | class="working" |{{Progress bar|60|text=''}} ||Partially Working - Trade NOT IMPLEMENTED |- | - Can open/close containers | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can move items into/out of containers | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can inject skills from items | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Agents Tab | class="working" |{{Progress bar|50|text=''}} ||Testing needed |- | - Can initiate conversation with station agent | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Character Interaction Menus == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Right-click Menu in Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click Menu in Chats other than Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click Menu in Station | class="working" |{{Progress bar|100|text=''}} ||Done |} == Chats - Local Corp Custom Private == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Characters show up in Local | class="working" |{{Progress bar|100|text=''}} ||Kinda Working, need testing, character names do not get updated to subsequent clients logging into the system after the first |- | - Chat in Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Characters show up in Corp | class="working" |{{Progress bar|90|text=''}} ||character names do not get updated for subsequent character logins |- | - Chat in Corp | class="working" |{{Progress bar|90|text=''}} || character names do not get updated for subsequent character logins |- | - Initiate Private Conversation Chat | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Create Private Chat Channels | class="working" |{{Progress bar|70|text=''}} ||Working, need testing, password checks and moderators NON-FUNCTIONAL |- | - Joining Created Private Chat Channels | class="working" |{{Progress bar|90|text=''}} ||working, need testing |- | - Chat in Private Chat Channels | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Load Subscribed Public and Private Chat Channels Upon Login | class="working" |{{Progress bar|95|text=''}} ||Mostly working, one empty-named channel loaded for each character (server attempts to load a channel with ID = characterID) |- | - Configure Private Chat Channels | class="working" |{{Progress bar|60|text=''}} ||Working, but need more work |- | - Leave Chat Channels | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Un-subscribe (leave) from Private Chat Channel | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character and Corporation Lookup | class="working" |{{Progress bar|100|text=''}} ||Done |} == EvE Mail == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can Send Eve-mails | class="working" |{{Progress bar|50|text=''}} ||Broken |- | - Can Receive Eve-mails | class="working" |{{Progress bar|0|text=''}} ||Unknown |- | - Can View Eve-mails | class="working" |{{Progress bar|40|text=''}} ||Broken (unable to load mailbox) |- | - Can Reply-to Eve-mails | class="working" |{{Progress bar|50|text=''}} ||Unknown |- | - Can Send Eve-mails to Groups (like Corp) | class="working" |{{Progress bar|0|text=''}} ||Broken |- | - Can Create new Private Mailing Lists | class="working" |{{Progress bar|0|text=''}} ||Need Testing |- | - Newly Created Private Mailing Lists Saved to DB/Restored from DB | class="working" |{{Progress bar|0|text=''}} ||need testing |- | - Can Send/Receive messages in new Private Mailing Lists | class="working" |{{Progress bar|0|text=''}} ||Need testing |} == Module Management == '''Current Status:''' Need SQL Information. {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can drag modules from items to center of Fitting window (auto-insert into slots) | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can drag modules from items to slots in Fitting window | class="working" |{{Progress bar|90|text=''}} ||Need testing |- | - Can Online/Offline modules in slots in Fitting window | class="working" |{{Progress bar|90|text=''}} ||Working - NOT all modules supported |- | - Can remove modules from slots in Fitting window to either cargo, station item list, or container in space | class="working" |{{Progress bar|90|text=''}} ||Working - NOT all modules supportede |- | - Can add/remove charges to modules slots in Fitting window | class="working" |{{Progress bar|30|text=''}} ||unknown |- | - Can move modules from slot to slot in Fitting window | class="working" |{{Progress bar|70|text=''}} ||Maybe - needs testing |- | - Can Activate modules on ship in space | class="working" |{{Progress bar|0|text=''}} ||NON-FUNCTIONAL |- | - Activated modules on ship in space produce desired effect | class="working" |{{Progress bar|0|text=''}} ||NON-FUNCTIONAL |- | - Can De-activate modules on ship in space | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - De-activated modules on ship in space remove desired effect | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Item Properties Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - View every item's properties | class="working" |{{Progress bar|100|text=''}} ||Done |- | - View every item's picture (orange eye button) | class="working" |{{Progress bar|90|text=''}} ||Need testing |} == Market Window - Buy Orders - Sell Orders == === Sell Order === {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Sell Order | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Placing Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Cancelling Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Modify Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |} === Buy Order === {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Buy Orders | class="working" |{{Progress bar|0|text=''}} ||Unknown |} == Assets Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - All Assets View | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED, confirmed (bastrian) |- | - View Assets by Region | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Constellation | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Solar System | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Station | class="working" |{{Progress bar|90|text=''}} ||Need testing |- | - Search Assets | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |} == Wallet Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - View Journal Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Shares Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Orders Entries | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |- | - View Transactions Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Contracts == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Start Page | class="working" |{{Progress bar|50|text=''}} ||Partially Working |- | - Create Contracts | class="working" |{{Progress bar|40|text=''}} ||Partially Working |- | - Get contract info | class="working" |{{Progress bar|80|text=''}} ||Partially Working |- | - List our actual contracts | class="working" |{{Progress bar|60|text=''}} ||NOT IMPLEMENTED |- | - List available contracts | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Delete contracts | class="working" |{{Progress bar|100|text=''}} ||Done |} == Map System == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can search Solar Systems | class="working" |? ||NON-Functional, missing Service call (Requires re-checking) |- | - Can plot routes by searching systems and adding waypoints | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |} == Ship Management in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Interaction with POS modules | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can store/retrieve ships from Ship Maintenance Arrays | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can store/retrieve items from Corporate Hangar Arrays | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Anchor POS modules with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Online/Offline POS modules with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Add/Remove Fuel for Control Tower with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Add/Remove? Charges for Defensive Batteries with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Jettison items into space (make Jet-cans) | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can open Jet-cans and Add/Remove items within them | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can open Containers in space (anchored and unanchored) and Add/Remove items within them | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can eject from ships in space to appear in pod | class="working" |{{Progress bar|70|text=''}} ||Partially working |- | - Ships ejected from stay in space | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Can enter ships in space from pod | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Can name your ship whatever you want | class="working" |{{Progress bar|100|text=''}} ||Done |} == Ship Navigation in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Warp-in from distant random location on LOGIN | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Warp-out to distant random location on LOGOFF | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Warp to celestial object off-grid (a.k.a. Warp-in bug) | class="working" |{{Progress bar|65|text=''}} ||Working better, still hacky |- | - Warp to ship or other object on-grid | class="working" |{{Progress bar|65|text=''}} ||Working better, still hacky |- | - Jumping Stargates | class="working" |{{Progress bar|90|text=''}} ||Mostly perfect, infrequent server stalls for minutes are reported |- | - Right-click -> Approach, then Log Off | class="working" |{{Progress bar|0|text=''}} ||Working |- | - Right-click -> Approach | class="working" |{{Progress bar|90|text=''}} ||Working |- | - Approaching Objects | class="working" |{{Progress bar|90|text=''}} ||Working |- | - Entering Stations | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Exiting Stations | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Autopilot correctly controls ship course, warping to gates, approach to 0m on gate, and jumping to follow planned jump route waypoints. | class="working" |{{Progress bar|90|text=''}} ||Mostly working, need testing |- | - Bookmark system | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmarks loaded from database at character login | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmark a location in space | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmark a station, planet, moon, stargate | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Delete Bookmarks | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Update a Bookmark | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |- | - Copy/move Bookmark(s) to Ship Cargo | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |} == Ship Combat in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can target and lock a ship using overview | class="working" |{{Progress bar|80|text=''}} ||Working, you get Insta-Lock, but progress bar moves as expected |- | - Can activate modules on target-locked ship and modules take effect on target | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Drones | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Launch Drones | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Engage Enemy / Roid | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recall to orbit | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recall To Bay | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Fleet Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can form fleets with other characters | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Fleet chat window | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Fleet management window | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Set fleet/wing/squad commanders | class="broken" |0% ||NOT IMPLEMENTED |- | - Set fleet/wing/squad boosters | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Set fleet/wing/squad bosses | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Broadcast fleet notifications | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Overview Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Selected Item Window | class="working" |{{Progress bar|100|text=''}} ||Done |} == Corporation Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Create a corporation | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Manage Roles | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Corp Hangers and divisions | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Corp Wallet | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Renting Office | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Declairing War | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recruiting | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Alliance Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Creating Alliance | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Player Owned Station (POS) Deployment and Management == Server log indicates it is unwilling to "spawn" structure-type celestial objects (problems with Celestial object spawning system need to be resolved before this can be fixed) {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Deploying Station Structures | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Outpost Construction and Management == == EvE Server API == [[Category:Crucible]] fb1a381e42156a7a8a3dae6390010a971dfe33f0 Module:Color contrast/colors 828 201 309 2019-01-24T12:30:11Z Wikipedia_Templates>Galobtter 0 Changed protection level for "[[Module:Color contrast/colors]]": [[WP:High-risk templates|High-risk Lua module]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite)) Scribunto text/plain return { aliceblue = 0.92880068253475, antiquewhite = 0.84646951707754, aqua = 0.7874, aquamarine = 0.8078549208338, azure = 0.97265264954166, beige = 0.8988459998705, bisque = 0.80732327372979, black = 0, blanchedalmond = 0.85084439608156, blue = 0.0722, blueviolet = 0.12622014321946, brown = 0.098224287876511, burlywood = 0.51559844533893, cadetblue = 0.29424681085422, chartreuse = 0.76032025902623, chocolate = 0.23898526114557, coral = 0.37017930872924, cornflowerblue = 0.30318641994179, cornsilk = 0.93562110372965, crimson = 0.16042199953026, cyan = 0.7874, darkblue = 0.018640801980939, darkcyan = 0.20329317839046, darkgoldenrod = 0.27264703559993, darkgray = 0.39675523072563, darkgreen = 0.091143429047575, darkgrey = 0.39675523072563, darkkhaki = 0.45747326349994, darkmagenta = 0.07353047651207, darkolivegreen = 0.12651920884889, darkorange = 0.40016167026524, darkorchid = 0.13413142174857, darkred = 0.054889674531132, darksalmon = 0.40541471563381, darkseagreen = 0.43789249325969, darkslateblue = 0.065792846227988, darkslategray = 0.067608151928044, darkslategrey = 0.067608151928044, darkturquoise = 0.4874606277449, darkviolet = 0.10999048339343, deeppink = 0.23866895828276, deepskyblue = 0.44481603395575, dimgray = 0.14126329114027, dimgrey = 0.14126329114027, dodgerblue = 0.27442536991456, firebrick = 0.10724525535015, floralwhite = 0.95922484825004, forestgreen = 0.18920812076002, fuchsia = 0.2848, gainsboro = 0.71569350050648, ghostwhite = 0.94311261886323, gold = 0.69860877428159, goldenrod = 0.41919977809569, gray = 0.2158605001139, green = 0.15438342968146, greenyellow = 0.80609472611453, grey = 0.2158605001139, honeydew = 0.96336535554782, hotpink = 0.34658438169715, indianred = 0.21406134963884, indigo = 0.03107561486337, ivory = 0.99071270600615, khaki = 0.77012343394121, lavender = 0.80318750514521, lavenderblush = 0.90172748631046, lawngreen = 0.73905893124963, lemonchiffon = 0.94038992245622, lightblue = 0.63709141280807, lightcoral = 0.35522120733135, lightcyan = 0.94587293494829, lightgoldenrodyellow = 0.93348351018297, lightgray = 0.65140563741982, lightgreen = 0.69091979956865, lightgrey = 0.65140563741982, lightpink = 0.58566152734898, lightsalmon = 0.4780675225206, lightseagreen = 0.35050145117042, lightskyblue = 0.56195637618331, lightslategray = 0.23830165007287, lightslategrey = 0.23830165007287, lightsteelblue = 0.53983888284666, lightyellow = 0.98161818392882, lime = 0.7152, limegreen = 0.44571042246098, linen = 0.88357340984379, magenta = 0.2848, maroon = 0.045891942324215, mediumaquamarine = 0.49389703310801, mediumblue = 0.044077780212328, mediumorchid = 0.21639251153773, mediumpurple = 0.22905858091648, mediumseagreen = 0.34393112338131, mediumslateblue = 0.20284629471622, mediumspringgreen = 0.70704308194184, mediumturquoise = 0.5133827926448, mediumvioletred = 0.14371899849357, midnightblue = 0.02071786635086, mintcream = 0.97834604947588, mistyrose = 0.82183047859185, moccasin = 0.80083000991567, navajowhite = 0.76519682342785, navy = 0.015585128108224, oldlace = 0.91900633405549, olive = 0.20027537200568, olivedrab = 0.22593150951929, orange = 0.4817026703631, orangered = 0.25516243753416, orchid = 0.31348806761439, palegoldenrod = 0.78792647887614, palegreen = 0.77936759006353, paleturquoise = 0.76436077921714, palevioletred = 0.28754994117889, papayawhip = 0.87797100199835, peachpuff = 0.74905589878251, peru = 0.30113074877936, pink = 0.63271070702466, plum = 0.45734221587969, powderblue = 0.68254586500605, purple = 0.061477070432439, rebeccapurple = 0.07492341159447, red = 0.2126, rosybrown = 0.32319457649407, royalblue = 0.16663210743188, saddlebrown = 0.097922285020521, salmon = 0.36977241527596, sandybrown = 0.46628543696283, seagreen = 0.19734199706275, seashell = 0.92737862206922, sienna = 0.13697631337098, silver = 0.52711512570581, skyblue = 0.55291668518184, slateblue = 0.14784278062136, slategray = 0.20896704076536, slategrey = 0.20896704076536, snow = 0.96533341834849, springgreen = 0.73052306068529, steelblue = 0.20562642207625, tan = 0.48237604163921, teal = 0.16996855778968, thistle = 0.56818401093733, tomato = 0.30638612719415, turquoise = 0.5895536427578, violet = 0.40315452986676, wheat = 0.74909702820482, white = 1, whitesmoke = 0.91309865179342, yellow = 0.9278, yellowgreen = 0.50762957208707, } 6ae47fdb24de4eed5ec26d203faf5341a388987b Template:Lua 10 175 257 2019-03-20T22:04:45Z Wikipedia_Templates>RMCD bot 0 Removing notice of move discussion wikitext text/x-wiki <includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7 Template:Intricate template 10 193 293 2019-05-09T07:27:15Z Wikipedia_Templates>MSGJ 0 add editnotice option wikitext text/x-wiki {{#switch:{{{form|}}} |editnotice = {{editnotice |id = {{{id|}}} |image = [[Image:Ambox warning yellow.svg|40x40px|alt=|link=]] |text = {{Intricate template/text}} |expiry= {{{expiry|}}} }} |#default = {{ombox |type = style |image = [[Image:Ambox warning yellow.svg|40x40px|alt=|link=]] |text = {{Intricate template/text}} }} }}<includeonly>{{#ifeq: {{PAGENAME}} | {{BASEPAGENAME}} | [[Category:Intricate templates]] }}</includeonly><noinclude> {{Documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> 9146fbe710b52118d2dac95e9f9900017c229d94 Template:Intricate template/text 10 194 295 2019-05-09T07:48:25Z Wikipedia_Templates>MSGJ 0 Protected "[[Template:Intricate template/text]]": [[WP:High-risk templates|Highly visible template]] ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite)) wikitext text/x-wiki '''This {{SUBJECTSPACE formatted}} employs intricate features of template syntax.''' <div style="padding-bottom:2px;">You are encouraged to familiarise yourself with its setup and [[m:Help:Parser function|parser functions]] before editing the template. If your edit causes unexpected problems, please [[Help:Reverting#Undo|undo]] it quickly, as this template may appear on a large number of pages.<br/> You can conduct experiments, and should test all major changes, in either <span class="nowraplinks">[[{{#ifexist:{{FULLPAGENAME}}/Sandbox|/Sandbox|{{#ifexist:{{FULLPAGENAME}}/test sandbox|/test sandbox|{{#ifexist:{{FULLPAGENAME}}/Test sandbox|/Test sandbox|{{#ifexist:{{FULLPAGENAME}}/test|/test|{{#ifexist:{{FULLPAGENAME}}/Test|/Test|/sandbox}}}}}}}}}}|this template's sandbox]]</span>, the [[Template:Template sandbox|general template sandbox]], or your user space before changing anything here.</div> b296ccca7329fd6429a574b2b1d3e2d68722fd44 Template:Progress templates 10 197 301 2019-09-01T17:22:52Z Wikipedia_Templates>Primefac 0 duplicated wikitext text/x-wiki {{Navbox | name = Progress templates | title = Progress templates | bodyclass = hlist | state = {{{state|{{{1|}}}}}} | group1 = General progress templates | list1 = *{{tl|Progress bar}} *{{tl|Progression}} *{{tl|Composition bar}} *{{tl|Composition histogram}} *{{tl|Percentage bar}} *{{tl|Percent-done}} *{{tl|Progress meter}} *{{tl|Percentile}} *{{tl|Stacked bar}} | group2 = Specific-use templates | list2 = *{{tl|Backlog progress bar}} *{{tl|Progress box}} *{{tl|Stage short}} *{{tl|Progression rainbow}} *{{tl|WikiProject assessment progression}} |belowstyle = font-weight:bold; |below = * {{icon|category}} [[:Category:Wikipedia progress templates|Category]] * {{icon|list}} [[Wikipedia:List of progress boxes|List]] <small>(partial)</small> }}<noinclude> {{Documentation}} <!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES TO THE /doc SUBPAGE, THANKS --> </noinclude> 99b8b12647a2d50a7c47145289408e5d14c938c9 Template:High-use 10 174 255 2019-12-02T21:41:25Z Wikipedia_Templates>Ahecht 0 Use [[Module:High-use]] wikitext text/x-wiki {{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude> a0b2a1139d339dbb30f81db49ec4775f8d55871f Template:Module other 10 176 259 2019-12-09T01:20:22Z Wikipedia_Templates>RMCD bot 0 Removing notice of move discussion wikitext text/x-wiki {{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:Module}} | module | other }} }} | module = {{{1|}}} | other | #default = {{{2|}}} }}<!--End switch--><noinclude> {{documentation}} <!-- Add categories to the /doc subpage, not here! --> </noinclude> 503694836c1b07142e63fd35d8be69ec8bb9ffe7 Template:Documentation 10 189 285 2020-04-01T06:12:34Z Wikipedia_Templates>MusikAnimal 0 1 revision imported wikitext text/x-wiki {{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude> <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> ce7fd93f18c46b4fa871bf679afd05cbda72d8c4 Template:Ombox 10 178 263 2020-04-01T06:12:36Z Wikipedia_Templates>MusikAnimal 0 1 revision imported wikitext text/x-wiki {{#invoke:Message box|ombox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> 0e54065432d540737b9e56c4e3a8e7f74d4534ea Template:Navbox 10 195 297 2020-04-01T06:12:36Z Wikipedia_Templates>MusikAnimal 0 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Navbox|navbox}}</includeonly><noinclude> {{Documentation}} </noinclude> fe9b964401f895918ee4fe078678f1722a3c41ec Module:Category handler 828 169 245 2020-04-01T06:12:40Z Wikipedia_Templates>MusikAnimal 0 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- -- -- CATEGORY HANDLER -- -- -- -- This module implements the {{category handler}} template in Lua, -- -- with a few improvements: all namespaces and all namespace aliases -- -- are supported, and namespace names are detected automatically for -- -- the local wiki. This module requires [[Module:Namespace detect]] -- -- and [[Module:Yesno]] to be available on the local wiki. It can be -- -- configured for different wikis by altering the values in -- -- [[Module:Category handler/config]], and pages can be blacklisted -- -- from categorisation by using [[Module:Category handler/blacklist]]. -- -- -- -------------------------------------------------------------------------------- -- Load required modules local yesno = require('Module:Yesno') -- Lazily load things we don't always need local mShared, mappings local p = {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function trimWhitespace(s, removeBlanks) if type(s) ~= 'string' then return s end s = s:match('^%s*(.-)%s*$') if removeBlanks then if s ~= '' then return s else return nil end else return s end end -------------------------------------------------------------------------------- -- CategoryHandler class -------------------------------------------------------------------------------- local CategoryHandler = {} CategoryHandler.__index = CategoryHandler function CategoryHandler.new(data, args) local obj = setmetatable({ _data = data, _args = args }, CategoryHandler) -- Set the title object do local pagename = obj:parameter('demopage') local success, titleObj if pagename then success, titleObj = pcall(mw.title.new, pagename) end if success and titleObj then obj.title = titleObj if titleObj == mw.title.getCurrentTitle() then obj._usesCurrentTitle = true end else obj.title = mw.title.getCurrentTitle() obj._usesCurrentTitle = true end end -- Set suppression parameter values for _, key in ipairs{'nocat', 'categories'} do local value = obj:parameter(key) value = trimWhitespace(value, true) obj['_' .. key] = yesno(value) end do local subpage = obj:parameter('subpage') local category2 = obj:parameter('category2') if type(subpage) == 'string' then subpage = mw.ustring.lower(subpage) end if type(category2) == 'string' then subpage = mw.ustring.lower(category2) end obj._subpage = trimWhitespace(subpage, true) obj._category2 = trimWhitespace(category2) -- don't remove blank values end return obj end function CategoryHandler:parameter(key) local parameterNames = self._data.parameters[key] local pntype = type(parameterNames) if pntype == 'string' or pntype == 'number' then return self._args[parameterNames] elseif pntype == 'table' then for _, name in ipairs(parameterNames) do local value = self._args[name] if value ~= nil then return value end end return nil else error(string.format( 'invalid config key "%s"', tostring(key) ), 2) end end function CategoryHandler:isSuppressedByArguments() return -- See if a category suppression argument has been set. self._nocat == true or self._categories == false or ( self._category2 and self._category2 ~= self._data.category2Yes and self._category2 ~= self._data.category2Negative ) -- Check whether we are on a subpage, and see if categories are -- suppressed based on our subpage status. or self._subpage == self._data.subpageNo and self.title.isSubpage or self._subpage == self._data.subpageOnly and not self.title.isSubpage end function CategoryHandler:shouldSkipBlacklistCheck() -- Check whether the category suppression arguments indicate we -- should skip the blacklist check. return self._nocat == false or self._categories == true or self._category2 == self._data.category2Yes end function CategoryHandler:matchesBlacklist() if self._usesCurrentTitle then return self._data.currentTitleMatchesBlacklist else mShared = mShared or require('Module:Category handler/shared') return mShared.matchesBlacklist( self.title.prefixedText, mw.loadData('Module:Category handler/blacklist') ) end end function CategoryHandler:isSuppressed() -- Find if categories are suppressed by either the arguments or by -- matching the blacklist. return self:isSuppressedByArguments() or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist() end function CategoryHandler:getNamespaceParameters() if self._usesCurrentTitle then return self._data.currentTitleNamespaceParameters else if not mappings then mShared = mShared or require('Module:Category handler/shared') mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData end return mShared.getNamespaceParameters( self.title, mappings ) end end function CategoryHandler:namespaceParametersExist() -- Find whether any namespace parameters have been specified. -- We use the order "all" --> namespace params --> "other" as this is what -- the old template did. if self:parameter('all') then return true end if not mappings then mShared = mShared or require('Module:Category handler/shared') mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData end for ns, params in pairs(mappings) do for i, param in ipairs(params) do if self._args[param] then return true end end end if self:parameter('other') then return true end return false end function CategoryHandler:getCategories() local params = self:getNamespaceParameters() local nsCategory for i, param in ipairs(params) do local value = self._args[param] if value ~= nil then nsCategory = value break end end if nsCategory ~= nil or self:namespaceParametersExist() then -- Namespace parameters exist - advanced usage. if nsCategory == nil then nsCategory = self:parameter('other') end local ret = {self:parameter('all')} local numParam = tonumber(nsCategory) if numParam and numParam >= 1 and math.floor(numParam) == numParam then -- nsCategory is an integer ret[#ret + 1] = self._args[numParam] else ret[#ret + 1] = nsCategory end if #ret < 1 then return nil else return table.concat(ret) end elseif self._data.defaultNamespaces[self.title.namespace] then -- Namespace parameters don't exist, simple usage. return self._args[1] end return nil end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p = {} function p._exportClasses() -- Used for testing purposes. return { CategoryHandler = CategoryHandler } end function p._main(args, data) data = data or mw.loadData('Module:Category handler/data') local handler = CategoryHandler.new(data, args) if handler:isSuppressed() then return nil end return handler:getCategories() end function p.main(frame, data) data = data or mw.loadData('Module:Category handler/data') local args = require('Module:Arguments').getArgs(frame, { wrappers = data.wrappers, valueFunc = function (k, v) v = trimWhitespace(v) if type(k) == 'number' then if v ~= '' then return v else return nil end else return v end end }) return p._main(args, data) end return p b74dd63857b24904ac452429b11213f18647471f Module:Arguments 828 184 275 2020-04-01T06:12:40Z Wikipedia_Templates>MusikAnimal 0 1 revision imported Scribunto text/plain -- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string' then val = val:match('^%s*(.-)%s*$') if val == '' then return nil else return val end else return val end end local function tidyValTrimOnly(key, val) if type(val) == 'string' then return val:match('^%s*(.-)%s*$') else return val end end local function tidyValRemoveBlanksOnly(key, val) if type(val) == 'string' then if val:find('%S') then return val else return nil end else return val end end local function tidyValNoChange(key, val) return val end local function matchesTitle(given, title) local tp = type( given ) return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title end local translate_mt = { __index = function(t, k) return k end } function arguments.getArgs(frame, options) checkType('getArgs', 1, frame, 'table', true) checkType('getArgs', 2, options, 'table', true) frame = frame or {} options = options or {} --[[ -- Set up argument translation. --]] options.translate = options.translate or {} if getmetatable(options.translate) == nil then setmetatable(options.translate, translate_mt) end if options.backtranslate == nil then options.backtranslate = {} for k,v in pairs(options.translate) do options.backtranslate[v] = k end end if options.backtranslate and getmetatable(options.backtranslate) == nil then setmetatable(options.backtranslate, { __index = function(t, k) if options.translate[k] ~= k then return nil else return k end end }) end --[[ -- Get the argument tables. If we were passed a valid frame object, get the -- frame arguments (fargs) and the parent frame arguments (pargs), depending -- on the options set and on the parent frame's availability. If we weren't -- passed a valid frame object, we are being called from another Lua module -- or from the debug console, so assume that we were passed a table of args -- directly, and assign it to a new variable (luaArgs). --]] local fargs, pargs, luaArgs if type(frame.args) == 'table' and type(frame.getParent) == 'function' then if options.wrappers then --[[ -- The wrappers option makes Module:Arguments look up arguments in -- either the frame argument table or the parent argument table, but -- not both. This means that users can use either the #invoke syntax -- or a wrapper template without the loss of performance associated -- with looking arguments up in both the frame and the parent frame. -- Module:Arguments will look up arguments in the parent frame -- if it finds the parent frame's title in options.wrapper; -- otherwise it will look up arguments in the frame object passed -- to getArgs. --]] local parent = frame:getParent() if not parent then fargs = frame.args else local title = parent:getTitle():gsub('/sandbox$', '') local found = false if matchesTitle(options.wrappers, title) then found = true elseif type(options.wrappers) == 'table' then for _,v in pairs(options.wrappers) do if matchesTitle(v, title) then found = true break end end end -- We test for false specifically here so that nil (the default) acts like true. if found or options.frameOnly == false then pargs = parent.args end if not found or options.parentOnly == false then fargs = frame.args end end else -- options.wrapper isn't set, so check the other options. if not options.parentOnly then fargs = frame.args end if not options.frameOnly then local parent = frame:getParent() pargs = parent and parent.args or nil end end if options.parentFirst then fargs, pargs = pargs, fargs end else luaArgs = frame end -- Set the order of precedence of the argument tables. If the variables are -- nil, nothing will be added to the table, which is how we avoid clashes -- between the frame/parent args and the Lua args. local argTables = {fargs} argTables[#argTables + 1] = pargs argTables[#argTables + 1] = luaArgs --[[ -- Generate the tidyVal function. If it has been specified by the user, we -- use that; if not, we choose one of four functions depending on the -- options chosen. This is so that we don't have to call the options table -- every time the function is called. --]] local tidyVal = options.valueFunc if tidyVal then if type(tidyVal) ~= 'function' then error( "bad value assigned to option 'valueFunc'" .. '(function expected, got ' .. type(tidyVal) .. ')', 2 ) end elseif options.trim ~= false then if options.removeBlanks ~= false then tidyVal = tidyValDefault else tidyVal = tidyValTrimOnly end else if options.removeBlanks ~= false then tidyVal = tidyValRemoveBlanksOnly else tidyVal = tidyValNoChange end end --[[ -- Set up the args, metaArgs and nilArgs tables. args will be the one -- accessed from functions, and metaArgs will hold the actual arguments. Nil -- arguments are memoized in nilArgs, and the metatable connects all of them -- together. --]] local args, metaArgs, nilArgs, metatable = {}, {}, {}, {} setmetatable(args, metatable) local function mergeArgs(tables) --[[ -- Accepts multiple tables as input and merges their keys and values -- into one table. If a value is already present it is not overwritten; -- tables listed earlier have precedence. We are also memoizing nil -- values, which can be overwritten if they are 's' (soft). --]] for _, t in ipairs(tables) do for key, val in pairs(t) do if metaArgs[key] == nil and nilArgs[key] ~= 'h' then local tidiedVal = tidyVal(key, val) if tidiedVal == nil then nilArgs[key] = 's' else metaArgs[key] = tidiedVal end end end end end --[[ -- Define metatable behaviour. Arguments are memoized in the metaArgs table, -- and are only fetched from the argument tables once. Fetching arguments -- from the argument tables is the most resource-intensive step in this -- module, so we try and avoid it where possible. For this reason, nil -- arguments are also memoized, in the nilArgs table. Also, we keep a record -- in the metatable of when pairs and ipairs have been called, so we do not -- run pairs and ipairs on the argument tables more than once. We also do -- not run ipairs on fargs and pargs if pairs has already been run, as all -- the arguments will already have been copied over. --]] metatable.__index = function (t, key) --[[ -- Fetches an argument when the args table is indexed. First we check -- to see if the value is memoized, and if not we try and fetch it from -- the argument tables. When we check memoization, we need to check -- metaArgs before nilArgs, as both can be non-nil at the same time. -- If the argument is not present in metaArgs, we also check whether -- pairs has been run yet. If pairs has already been run, we return nil. -- This is because all the arguments will have already been copied into -- metaArgs by the mergeArgs function, meaning that any other arguments -- must be nil. --]] if type(key) == 'string' then key = options.translate[key] end local val = metaArgs[key] if val ~= nil then return val elseif metatable.donePairs or nilArgs[key] then return nil end for _, argTable in ipairs(argTables) do local argTableVal = tidyVal(key, argTable[key]) if argTableVal ~= nil then metaArgs[key] = argTableVal return argTableVal end end nilArgs[key] = 'h' return nil end metatable.__newindex = function (t, key, val) -- This function is called when a module tries to add a new value to the -- args table, or tries to change an existing value. if type(key) == 'string' then key = options.translate[key] end if options.readOnly then error( 'could not write to argument table key "' .. tostring(key) .. '"; the table is read-only', 2 ) elseif options.noOverwrite and args[key] ~= nil then error( 'could not write to argument table key "' .. tostring(key) .. '"; overwriting existing arguments is not permitted', 2 ) elseif val == nil then --[[ -- If the argument is to be overwritten with nil, we need to erase -- the value in metaArgs, so that __index, __pairs and __ipairs do -- not use a previous existing value, if present; and we also need -- to memoize the nil in nilArgs, so that the value isn't looked -- up in the argument tables if it is accessed again. --]] metaArgs[key] = nil nilArgs[key] = 'h' else metaArgs[key] = val end end local function translatenext(invariant) local k, v = next(invariant.t, invariant.k) invariant.k = k if k == nil then return nil elseif type(k) ~= 'string' or not options.backtranslate then return k, v else local backtranslate = options.backtranslate[k] if backtranslate == nil then -- Skip this one. This is a tail call, so this won't cause stack overflow return translatenext(invariant) else return backtranslate, v end end end metatable.__pairs = function () -- Called when pairs is run on the args table. if not metatable.donePairs then mergeArgs(argTables) metatable.donePairs = true end return translatenext, { t = metaArgs } end local function inext(t, i) -- This uses our __index metamethod local v = t[i + 1] if v ~= nil then return i + 1, v end end metatable.__ipairs = function (t) -- Called when ipairs is run on the args table. return inext, t, 0 end return args end return arguments 3134ecce8429b810d445e29eae115e2ae4c36c53 Module:Message box/configuration 828 167 241 2020-04-01T06:12:44Z Wikipedia_Templates>MusikAnimal 0 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Article message templates', templateCategoryRequireName = true, templateErrorCategory = 'Article message templates with missing parameters', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '[[Help:Maintenance template removal|Learn how and when to remove this template message]]' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox license.png' -- @todo We need an SVG version of this }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg' }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes' }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, imageEmptyCellStyle = true, templateCategory = 'Talk message boxes' } } ef8171b8278c52d9c20a4149614d97cd948670c2 Module:Yesno 828 170 247 2020-04-01T06:27:55Z Wikipedia_Templates>MusikAnimal 0 Undid revision 948472533 by [[Special:Contributions/w>Vogone|w>Vogone]] ([[User talk:w>Vogone|talk]]) Scribunto text/plain -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you -- should replace "val:lower()" with "mw.ustring.lower(val)" in the -- following line. val = type(val) == 'string' and val:lower() or val if val == nil then return nil elseif val == true or val == 'yes' or val == 'y' or val == 'true' or val == 't' or val == 'on' or tonumber(val) == 1 then return true elseif val == false or val == 'no' or val == 'n' or val == 'false' or val == 'f' or val == 'off' or tonumber(val) == 0 then return false else return default end end f767643e7d12126d020d88d662a3dd057817b9dc Module:No globals 828 168 243 2020-04-01T06:28:55Z Wikipedia_Templates>MusikAnimal 0 Undid revision 948472525 by [[Special:Contributions/w>DiBabelYurikBot|w>DiBabelYurikBot]] ([[User talk:w>DiBabelYurikBot|talk]]) Scribunto text/plain local mt = getmetatable(_G) or {} function mt.__index (t, k) if k ~= 'arg' then error('Tried to read nil global ' .. tostring(k), 2) end return nil end function mt.__newindex(t, k, v) if k ~= 'arg' then error('Tried to write global ' .. tostring(k), 2) end rawset(t, k, v) end setmetatable(_G, mt) 8ce3969f7d53b08bd00dabe4cc9780bc6afd412a Template:Documentation subpage 10 190 287 2020-04-01T06:32:45Z Wikipedia_Templates>DannyS712 0 Reverted to revision 617432645 by [[Special:Contributions/Sardanaphalus|Sardanaphalus]] ([[User talk:Sardanaphalus|talk]]): Restoring ([[WP:TW|TW]]) wikitext text/x-wiki <includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=|link=]] | text = '''This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. }} }}<!-- -->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!-- -->{{#if:{{{inhibit|}}} |<!--(don't categorize)--> | <includeonly><!-- -->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}} | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]] | [[Category:Documentation subpages without corresponding pages]] }}<!-- --></includeonly> }}<!-- (completing initial #ifeq: at start of template:) --><includeonly> | <!--(this template has not been transcluded on a /doc or /{{{override}}} page)--> }}<!-- --></includeonly><noinclude>{{Documentation}}</noinclude> a1dda2f5e5ddf9097546af5acd7a7bad14fdac9d Template:Sandbox other 10 179 265 2020-04-03T00:08:09Z Wikipedia_Templates>Evad37 0 Also match subpage names beginning with "sandbox", per [[Template_talk:Sandbox_other#Template-protected_edit_request_on_28_March_2020|edit request]] wikitext text/x-wiki {{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!-- --><noinclude>{{documentation}}</noinclude> 91e4ae891d6b791615152c1fbc971414961ba872 Category:Article message templates 14 172 251 2020-04-18T11:48:22Z Wikipedia_Templates>BrownHairedGirl 0 {{Category TOC}} → {{CatAutoTOC}} on [[Category:Template Category TOC without CatAutoTOC on category with 301–600 pages|categories with 301–600 pages]] wikitext text/x-wiki {{see also|:Category:Under-construction templates}} {{Wikipedia category|tracking=y}} {{Category used by module|[[Module:Message box/configuration]]}} {{template category|description=This category automatically includes all templates using {{Tlg|Ambox}} which have their {{Para|name}} parameter set.}} {{CatAutoTOC}} [[Category:Wikipedia message box templates]] [[Category:Article namespace templates|message]] 81d88cc7252ffaba302b074559273b00a8be8ca8 Template:Esoteric 10 191 289 2020-05-11T23:02:16Z Wikipedia_Templates>Timrollpickering 0 /* top */per [[Wikipedia:Categories for discussion/Log/2020 May 2]], replaced: Protected redirects → Fully protected redirects wikitext text/x-wiki #REDIRECT [[Template:Intricate template]] [[Category:Fully protected redirects]] cb5f7f64914d207a4abd8528d9eb1c81b471b07e Module:Message box 828 166 239 2020-08-03T15:47:52Z Wikipedia_Templates>MSGJ 0 show link to talk discussion when used in small format, per request Scribunto text/plain -- This is a meta-module for producing message box templates, including -- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}. -- Load necessary modules. require('Module:No globals') local getArgs local yesno = require('Module:Yesno') -- Get a language object for formatDate and ucfirst. local lang = mw.language.getContentLanguage() -- Define constants local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if args.demospace and args.demospace ~= '' then -- implement demospace parameter of mbox local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then -- use template from DEMOSPACES obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find( demospace, 'talk' ) then -- demo as a talk page obj.cfg = cfg.tmbox else -- default to ombox obj.cfg = cfg.ombox end elseif ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Add attributes, classes and styles. self.id = args.id self.name = args.name if self.name then self:addClass('box-' .. string.gsub(self.name,' ','_')) end if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText if self.isSmall then local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk) talkText = string.format('([[%s|talk]])', talkLink) else talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s#%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- Set the below row. self.below = cfg.below and args.below -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell if cfg.imageEmptyCellStyle then self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px' end -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage or 'Imbox notice.png', imageSize) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):css('width', '52px') end imageLeftCell:wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') :cssText(self.imageEmptyCellStyle or nil) end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('small') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):css('width', '52px') end imageRightCell :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :css('text-align', 'center') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) fcb7e5c5edcd23c62b8dc64ad6f4fcf981be83c1 Template:Module rating 10 177 261 2020-10-29T19:42:19Z Wikipedia_Templates>Kaldari 0 all software has bugs wikitext text/x-wiki <includeonly>{{Module other|{{ombox | type = notice | image = {{#switch: {{{1|}}} | pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=|alt=Pre-alpha]] | alpha | a = [[File:Alpha lowercase.svg|26x26px|link=|alt=Alpha]] | beta | b = [[File:Greek lc beta.svg|40x40px|link=|alt=Beta]] | release | r | general | g = [[File:Green check.svg|40x40px|link=|alt=Ready for use]] | protected | protect | p = [[File:{{#switch:{{#invoke:Effective protection level|edit|{{#switch:{{SUBPAGENAME}}|doc|sandbox={{FULLBASEPAGENAME}}|{{FULLPAGENAME}}}}}}|autoconfirmed=Semi|extendedconfirmed=Extended|accountcreator|templateeditor=Template|#default=Full}}-protection-shackle.svg|40x40px|link=|alt=Protected]] | semiprotected | semiprotect | semi =[[File:Semi-protection-shackle.svg|40x40px|link=|alt=Semi-protected]] }} | style = | textstyle = | text = {{#switch: {{{1|}}} | pre-alpha | prealpha | pa = This module is rated as [[:Category:Modules in pre-alpha development|pre-alpha]]. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages. Modules remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in pre-alpha development|{{PAGENAME}}]] }} }} | alpha | a = This module is rated as [[:Category:Modules in alpha|alpha]]. It is ready for third-party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in alpha|{{PAGENAME}}]] }} }} | beta | b = This module is rated as [[:Category:Modules in beta|beta]], and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in beta|{{PAGENAME}}]] }} }} | release | r | general | g = This module is rated as [[:Category:Modules for general use|ready for general use]]. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by [[Wikipedia:Template sandbox and test cases|sandbox testing]] rather than repeated trial-and-error editing.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules for general use|{{PAGENAME}}]] }} }} | protected | protect | p = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, or is [[Wikipedia:Substitution|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[Wikipedia:Protection policy|protected]] from editing.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules subject to page protection|{{PAGENAME}}]] }} }} | semiprotected | semiprotect | semi = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, or is [[Wikipedia:Substitution|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[WP:SEMI|semi-protected]] from editing.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules subject to page protection|{{PAGENAME}}]] }} }} | #default = {{error|Module rating is invalid or not specified.}} }} }}|{{error|Error: {{tl|Module rating}} must be placed in the Module namespace.}} [[Category:Pages with templates in the wrong namespace]]|demospace={{{demospace|<noinclude>module</noinclude>}}}}}</includeonly><noinclude> {{module rating|release|nocat=true|demospace=module}} {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go in Wikidata. --> </noinclude> fa09f5dfdee6e8f216e15aaabf83f4fc95a94ff6 Template:Progress bar/doc 10 196 299 2020-11-16T15:07:37Z Wikipedia_Templates>JsfasdF252 0 correct examples wikitext text/x-wiki {{Documentation subpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> {{Esoteric}} == Usage == :<code>'''<nowiki>{{</nowiki>Progress bar|'''''value'''''<nowiki>}}</nowiki>'''</code> This template draws a progress bar. By default, the <code>value</code> to supply as the parameter is the percent, from 0 to 100 (e.g. 1 would mean 1%, .1 would be 0.1%). The text label of the progress bar will always be rounded to the nearest tenth of a percent (rounding up if the hundreds digit is 5; e.g. 50.15 would round to 50.2%). If a value isn't specified or is invalid, the bar displays 0%. Values greater than 100% will display incorrectly, although the text label will be correct. === Optional parameters === *<code>height</code> = height of the progress bar in pixels; defaults to 2 *<code>width</code> = width of the progress bar; defaults to 75% *<code>text</code> = message to display after %; defaults to: completed <small>(estimate)</small> *<code>total</code> = amount to use as the denominator (instead of 100), allows the template to compute the percentage on the fly *<code>header</code> = no (or any value other than "yes", which is the default) suppresses the display of the percentage on the top line === Examples === ==== Default configuration ==== <code><nowiki>{{Progress bar|5}}</nowiki></code> : {{Progress bar|5}} ==== With custom header text ==== <code><nowiki>{{Progress bar|5|text=done}}</nowiki></code> : {{Progress bar|5|text=done}} ==== Without header text ==== <code><nowiki>{{Progress bar|80|header=no|text=does not display here}}</nowiki></code> : {{Progress bar|80|header=no|text=does not display here}} ==== Custom height and width ==== <code><nowiki>{{Progress bar|80|height=4|width=50%}}</nowiki></code> : {{Progress bar|80|height=4|width=50%}} ==== Custom total ==== <code><nowiki>{{Progress bar|5|total=5}}</nowiki></code> : {{Progress bar|5|total=5}} {{Progress templates}} <includeonly>{{Sandbox other|| <!-- CATEGORIES AND INTERWIKIS HERE, THANKS --> [[Category:Wikipedia utility templates]] [[Category:Wikipedia progress templates]] }}</includeonly> bd5248113245a9d0248a1ca141dd0b3d077d361c Module:Documentation/config 828 186 279 2020-11-20T09:56:40Z Wikipedia_Templates>Andrybak 0 replace deprecated [[Help:Files|"Image:" with "File:"]] Scribunto text/plain ---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------------------------- local cfg = {} -- Do not edit this line. ---------------------------------------------------------------------------------------------------- -- Protection template configuration ---------------------------------------------------------------------------------------------------- -- cfg['protection-reason-edit'] -- The protection reason for edit-protected templates to pass to -- [[Module:Protection banner]]. cfg['protection-reason-edit'] = 'template' --[[ ---------------------------------------------------------------------------------------------------- -- Sandbox notice configuration -- -- On sandbox pages the module can display a template notifying users that the current page is a -- sandbox, and the location of test cases pages, etc. The module decides whether the page is a -- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the -- messages that the notices contains. ---------------------------------------------------------------------------------------------------- --]] -- cfg['sandbox-notice-image'] -- The image displayed in the sandbox notice. cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]' --[[ -- cfg['sandbox-notice-pagetype-template'] -- cfg['sandbox-notice-pagetype-module'] -- cfg['sandbox-notice-pagetype-other'] -- The page type of the sandbox page. The message that is displayed depends on the current subject -- namespace. This message is used in either cfg['sandbox-notice-blurb'] or -- cfg['sandbox-notice-diff-blurb']. --]] cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page' cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page' cfg['sandbox-notice-pagetype-other'] = 'sandbox page' --[[ -- cfg['sandbox-notice-blurb'] -- cfg['sandbox-notice-diff-blurb'] -- cfg['sandbox-notice-diff-display'] -- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence -- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page -- type, which is either cfg['sandbox-notice-pagetype-template'], -- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what -- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between -- the sandbox and the main template. The display value of the diff link is set by -- cfg['sandbox-notice-compare-link-display']. --]] cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.' cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).' cfg['sandbox-notice-compare-link-display'] = 'diff' --[[ -- cfg['sandbox-notice-testcases-blurb'] -- cfg['sandbox-notice-testcases-link-display'] -- cfg['sandbox-notice-testcases-run-blurb'] -- cfg['sandbox-notice-testcases-run-link-display'] -- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit. $1 is a link to the test cases page. -- cfg['sandbox-notice-testcases-link-display'] is the display value for that link. -- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test -- cases page, and $2 is a link to the page to run it. -- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test -- cases. --]] cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.' cfg['sandbox-notice-testcases-link-display'] = 'test cases' cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).' cfg['sandbox-notice-testcases-run-link-display'] = 'run' -- cfg['sandbox-category'] -- A category to add to all template sandboxes. cfg['sandbox-category'] = 'Template sandboxes' ---------------------------------------------------------------------------------------------------- -- Start box configuration ---------------------------------------------------------------------------------------------------- -- cfg['documentation-icon-wikitext'] -- The wikitext for the icon shown at the top of the template. cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- cfg['template-namespace-heading'] -- The heading shown in the template namespace. cfg['template-namespace-heading'] = 'Template documentation' -- cfg['module-namespace-heading'] -- The heading shown in the module namespace. cfg['module-namespace-heading'] = 'Module documentation' -- cfg['file-namespace-heading'] -- The heading shown in the file namespace. cfg['file-namespace-heading'] = 'Summary' -- cfg['other-namespaces-heading'] -- The heading shown in other namespaces. cfg['other-namespaces-heading'] = 'Documentation' -- cfg['view-link-display'] -- The text to display for "view" links. cfg['view-link-display'] = 'view' -- cfg['edit-link-display'] -- The text to display for "edit" links. cfg['edit-link-display'] = 'edit' -- cfg['history-link-display'] -- The text to display for "history" links. cfg['history-link-display'] = 'history' -- cfg['purge-link-display'] -- The text to display for "purge" links. cfg['purge-link-display'] = 'purge' -- cfg['create-link-display'] -- The text to display for "create" links. cfg['create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Link box (end box) configuration ---------------------------------------------------------------------------------------------------- -- cfg['transcluded-from-blurb'] -- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page. cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Wikipedia:Transclusion|transcluded]] from $1.' --[[ -- cfg['create-module-doc-blurb'] -- Notice displayed in the module namespace when the documentation subpage does not exist. -- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the -- display cfg['create-link-display']. --]] cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' ---------------------------------------------------------------------------------------------------- -- Experiment blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['experiment-blurb-template'] -- cfg['experiment-blurb-module'] -- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages. -- It is only shown in the template and module namespaces. With the default English settings, it -- might look like this: -- -- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. -- -- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links. -- -- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending -- on what namespace we are in. -- -- Parameters: -- -- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display']) -- -- If the sandbox doesn't exist, it is in the format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display']) -- -- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload'] -- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display'] -- loads a default edit summary of cfg['mirror-edit-summary']. -- -- $2 is a link to the test cases page. If the test cases page exists, it is in the following format: -- -- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display']) -- -- If the test cases page doesn't exist, it is in the format: -- -- cfg['testcases-link-display'] (cfg['testcases-create-link-display']) -- -- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the -- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current -- namespace. --]] cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages." cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages." ---------------------------------------------------------------------------------------------------- -- Sandbox link configuration ---------------------------------------------------------------------------------------------------- -- cfg['sandbox-subpage'] -- The name of the template subpage typically used for sandboxes. cfg['sandbox-subpage'] = 'sandbox' -- cfg['template-sandbox-preload'] -- Preload file for template sandbox pages. cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox' -- cfg['module-sandbox-preload'] -- Preload file for Lua module sandbox pages. cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox' -- cfg['sandbox-link-display'] -- The text to display for "sandbox" links. cfg['sandbox-link-display'] = 'sandbox' -- cfg['sandbox-edit-link-display'] -- The text to display for sandbox "edit" links. cfg['sandbox-edit-link-display'] = 'edit' -- cfg['sandbox-create-link-display'] -- The text to display for sandbox "create" links. cfg['sandbox-create-link-display'] = 'create' -- cfg['compare-link-display'] -- The text to display for "compare" links. cfg['compare-link-display'] = 'diff' -- cfg['mirror-edit-summary'] -- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the -- template page. cfg['mirror-edit-summary'] = 'Create sandbox version of $1' -- cfg['mirror-link-display'] -- The text to display for "mirror" links. cfg['mirror-link-display'] = 'mirror' -- cfg['mirror-link-preload'] -- The page to preload when a user clicks the "mirror" link. cfg['mirror-link-preload'] = 'Template:Documentation/mirror' ---------------------------------------------------------------------------------------------------- -- Test cases link configuration ---------------------------------------------------------------------------------------------------- -- cfg['testcases-subpage'] -- The name of the template subpage typically used for test cases. cfg['testcases-subpage'] = 'testcases' -- cfg['template-testcases-preload'] -- Preload file for template test cases pages. cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases' -- cfg['module-testcases-preload'] -- Preload file for Lua module test cases pages. cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases' -- cfg['testcases-link-display'] -- The text to display for "testcases" links. cfg['testcases-link-display'] = 'testcases' -- cfg['testcases-edit-link-display'] -- The text to display for test cases "edit" links. cfg['testcases-edit-link-display'] = 'edit' -- cfg['testcases-run-link-display'] -- The text to display for test cases "run" links. cfg['testcases-run-link-display'] = 'run' -- cfg['testcases-create-link-display'] -- The text to display for test cases "create" links. cfg['testcases-create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Add categories blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['add-categories-blurb'] -- Text to direct users to add categories to the /doc subpage. Not used if the "content" or -- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a -- link to the /doc subpage with a display value of cfg['doc-link-display']. --]] cfg['add-categories-blurb'] = 'Please add categories to the $1 subpage.' -- cfg['doc-link-display'] -- The text to display when linking to the /doc subpage. cfg['doc-link-display'] = '/doc' ---------------------------------------------------------------------------------------------------- -- Subpages link configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['subpages-blurb'] -- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a -- display value of cfg['subpages-link-display']. In the English version this blurb is simply -- the link followed by a period, and the link display provides the actual text. --]] cfg['subpages-blurb'] = '$1.' --[[ -- cfg['subpages-link-display'] -- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'], -- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in -- the template namespace, the module namespace, or another namespace. --]] cfg['subpages-link-display'] = 'Subpages of this $1' -- cfg['template-pagetype'] -- The pagetype to display for template pages. cfg['template-pagetype'] = 'template' -- cfg['module-pagetype'] -- The pagetype to display for Lua module pages. cfg['module-pagetype'] = 'module' -- cfg['default-pagetype'] -- The pagetype to display for pages other than templates or Lua modules. cfg['default-pagetype'] = 'page' ---------------------------------------------------------------------------------------------------- -- Doc link configuration ---------------------------------------------------------------------------------------------------- -- cfg['doc-subpage'] -- The name of the subpage typically used for documentation pages. cfg['doc-subpage'] = 'doc' -- cfg['file-docpage-preload'] -- Preload file for documentation page in the file namespace. cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace' -- cfg['docpage-preload'] -- Preload file for template documentation pages in all namespaces. cfg['docpage-preload'] = 'Template:Documentation/preload' -- cfg['module-preload'] -- Preload file for Lua module documentation pages. cfg['module-preload'] = 'Template:Documentation/preload-module-doc' ---------------------------------------------------------------------------------------------------- -- Print version configuration ---------------------------------------------------------------------------------------------------- -- cfg['print-subpage'] -- The name of the template subpage used for print versions. cfg['print-subpage'] = 'Print' -- cfg['print-link-display'] -- The text to display when linking to the /Print subpage. cfg['print-link-display'] = '/Print' -- cfg['print-blurb'] -- Text to display if a /Print subpage exists. $1 is a link to the subpage with -- a display value of cfg['print-link-display']. cfg['print-blurb'] = 'A [[Help:Books/for experts#Improving the book layout|print version]] of this template exists at $1.' .. ' If you make a change to this template, please update the print version as well.' -- cfg['display-print-category'] -- Set to true to enable output of cfg['print-category'] if a /Print subpage exists. -- This should be a boolean value (either true or false). cfg['display-print-category'] = true -- cfg['print-category'] -- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists. cfg['print-category'] = 'Templates with print versions' ---------------------------------------------------------------------------------------------------- -- HTML and CSS configuration ---------------------------------------------------------------------------------------------------- -- cfg['templatestyles'] -- The name of the TemplateStyles page where CSS is kept. -- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed. cfg['templatestyles'] = 'Module:Documentation/styles.css' -- cfg['container'] -- Class which can be used to set flex or grid CSS on the -- two child divs documentation and documentation-metadata cfg['container'] = 'documentation-container' -- cfg['main-div-classes'] -- Classes added to the main HTML "div" tag. cfg['main-div-classes'] = 'documentation' -- cfg['main-div-heading-class'] -- Class for the main heading for templates and modules and assoc. talk spaces cfg['main-div-heading-class'] = 'documentation-heading' -- cfg['start-box-class'] -- Class for the start box cfg['start-box-class'] = 'documentation-startbox' -- cfg['start-box-link-classes'] -- Classes used for the [view][edit][history] or [create] links in the start box. -- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]] cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks' -- cfg['end-box-class'] -- Class for the end box. cfg['end-box-class'] = 'documentation-metadata' -- cfg['end-box-plainlinks'] -- Plainlinks cfg['end-box-plainlinks'] = 'plainlinks' -- cfg['toolbar-class'] -- Class added for toolbar links. cfg['toolbar-class'] = 'documentation-toolbar' -- cfg['clear'] -- Just used to clear things. cfg['clear'] = 'documentation-clear' ---------------------------------------------------------------------------------------------------- -- Tracking category configuration ---------------------------------------------------------------------------------------------------- -- cfg['display-strange-usage-category'] -- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage -- or a /testcases subpage. This should be a boolean value (either true or false). cfg['display-strange-usage-category'] = true -- cfg['strange-usage-category'] -- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a -- /doc subpage or a /testcases subpage. cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage' --[[ ---------------------------------------------------------------------------------------------------- -- End configuration -- -- Don't edit anything below this line. ---------------------------------------------------------------------------------------------------- --]] return cfg 936dcd942da0ad844cd212849cde5e2dc1e45c3d Template:Used in system 10 183 273 2020-11-24T16:31:06Z Wikipedia_Templates>Serols 0 Reverted edits by [[Special:Contributions/2001:16A2:1270:7F00:A1B8:461C:7C30:E5F6|2001:16A2:1270:7F00:A1B8:461C:7C30:E5F6]] ([[User talk:2001:16A2:1270:7F00:A1B8:461C:7C30:E5F6|talk]]) ([[WP:HG|HG]]) (3.4.10) wikitext text/x-wiki {{ombox | type = content | text = '''This {{lcfirst:{{NAMESPACE}}}} is used {{#if:{{{1|}}}|{{{1}}}|in system messages}}.''' <br /> Changes to it can cause immediate changes to the Wikipedia user interface. {{#ifeq:{{NAMESPACENUMBER}}|6||To avoid large-scale disruption, any changes should first be tested in this {{lcfirst:{{NAMESPACE}}}}'s [[{{Sandbox other|{{SUBJECTSPACE}}:{{BASEPAGENAME}}|{{SUBJECTPAGENAME}}}}/sandbox|/sandbox]] or [[{{Sandbox other|{{SUBJECTSPACE}}:{{BASEPAGENAME}}|{{SUBJECTPAGENAME}}}}/testcases|/testcases]] subpage, or in your own [[Wikipedia:Subpages#How to create user subpages|user space]]. The tested changes can then be added in one single edit to this {{lcfirst:{{NAMESPACE}}}}.}} Please discuss any changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{Sandbox other|{{TALKSPACE}}:{{BASEPAGENAME}}|{{TALKPAGENAME}}}}|talk page]]}} before implementing them. }}<includeonly>{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default={{category handler|all=[[Category:Pages used in system messages needing protection]]|nocat={{{nocat|}}}}}}}}}</includeonly><noinclude> {{documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> eafbcb1326e5af4666730af4a931f294960a0965 Template:Tl 10 182 271 2021-02-12T22:03:00Z Wikipedia_Templates>Anthony Appleyard 0 Anthony Appleyard moved page [[Template:Tl]] to [[Template:Template link]]: [[Special:Permalink/1006428669|Requested]] by Buidhe at [[WP:RM/TR]]: RM closed as move wikitext text/x-wiki #REDIRECT [[Template:Template link]] {{Redirect category shell| {{R from move}} }} d6593bb3b4a866249f55d0f34b047a71fe1f1529 Module:Documentation 828 185 277 2021-03-05T23:50:41Z Wikipedia_Templates>Matt Fitzpatrick 0 role=note for end box Scribunto text/plain -- This module implements {{documentation}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs -- Get the config table. local cfg = mw.loadData('Module:Documentation/config') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in the p -- table for testing purposes. ---------------------------------------------------------------------------- local function message(cfgKey, valArray, expectType) --[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]] local msg = cfg[cfgKey] expectType = expectType or 'string' if type(msg) ~= expectType then error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2) end if not valArray then return msg end local function getMessageVal(match) match = tonumber(match) return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4) end return ugsub(msg, '$([1-9][0-9]*)', getMessageVal) end p.message = message local function makeWikilink(page, display) if display then return mw.ustring.format('[[%s|%s]]', page, display) else return mw.ustring.format('[[%s]]', page) end end p.makeWikilink = makeWikilink local function makeCategoryLink(cat, sort) local catns = mw.site.namespaces[14].name return makeWikilink(catns .. ':' .. cat, sort) end p.makeCategoryLink = makeCategoryLink local function makeUrlLink(url, display) return mw.ustring.format('[%s %s]', url, display) end p.makeUrlLink = makeUrlLink local function makeToolbar(...) local ret = {} local lim = select('#', ...) if lim < 1 then return nil end for i = 1, lim do ret[#ret + 1] = select(i, ...) end -- 'documentation-toolbar' return '<span class="' .. message('toolbar-class') .. '">(' .. table.concat(ret, ' &#124; ') .. ')</span>' end p.makeToolbar = makeToolbar ---------------------------------------------------------------------------- -- Argument processing ---------------------------------------------------------------------------- local function makeInvokeFunc(funcName) return function (frame) local args = getArgs(frame, { valueFunc = function (key, value) if type(value) == 'string' then value = value:match('^%s*(.-)%s*$') -- Remove whitespace. if key == 'heading' or value ~= '' then return value else return nil end else return value end end }) return p[funcName](args) end end ---------------------------------------------------------------------------- -- Entry points ---------------------------------------------------------------------------- function p.nonexistent(frame) if mw.title.getCurrentTitle().subpageText == 'testcases' then return frame:expandTemplate{title = 'module test cases notice'} else return p.main(frame) end end p.main = makeInvokeFunc('_main') function p._main(args) --[[ -- This function defines logic flow for the module. -- @args - table of arguments passed by the user --]] local env = p.getEnvironment(args) local root = mw.html.create() root :wikitext(p._getModuleWikitext(args, env)) :wikitext(p.protectionTemplate(env)) :wikitext(p.sandboxNotice(args, env)) :tag('div') -- 'documentation-container' :addClass(message('container')) :newline() :tag('div') -- 'documentation' :addClass(message('main-div-classes')) :newline() :wikitext(p._startBox(args, env)) :wikitext(p._content(args, env)) :tag('div') -- 'documentation-clear' :addClass(message('clear')) :done() :newline() :done() :wikitext(p._endBox(args, env)) :done() :wikitext(p.addTrackingCategories(env)) -- 'Module:Documentation/styles.css' return mw.getCurrentFrame():extensionTag ( 'templatestyles', '', {src=cfg['templatestyles'] }) .. tostring(root) end ---------------------------------------------------------------------------- -- Environment settings ---------------------------------------------------------------------------- function p.getEnvironment(args) --[[ -- Returns a table with information about the environment, including title -- objects and other namespace- or path-related data. -- @args - table of arguments passed by the user -- -- Title objects include: -- env.title - the page we are making documentation for (usually the current title) -- env.templateTitle - the template (or module, file, etc.) -- env.docTitle - the /doc subpage. -- env.sandboxTitle - the /sandbox subpage. -- env.testcasesTitle - the /testcases subpage. -- env.printTitle - the print version of the template, located at the /Print subpage. -- -- Data includes: -- env.protectionLevels - the protection levels table of the title object. -- env.subjectSpace - the number of the title's subject namespace. -- env.docSpace - the number of the namespace the title puts its documentation in. -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace. -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template. -- -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value -- returned will be nil. --]] local env, envFuncs = {}, {} -- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value -- returned by that function is memoized in the env table so that we don't call any of the functions -- more than once. (Nils won't be memoized.) setmetatable(env, { __index = function (t, key) local envFunc = envFuncs[key] if envFunc then local success, val = pcall(envFunc) if success then env[key] = val -- Memoise the value. return val end end return nil end }) function envFuncs.title() -- The title object for the current page, or a test page passed with args.page. local title local titleArg = args.page if titleArg then title = mw.title.new(titleArg) else title = mw.title.getCurrentTitle() end return title end function envFuncs.templateTitle() --[[ -- The template (or module, etc.) title object. -- Messages: -- 'sandbox-subpage' --> 'sandbox' -- 'testcases-subpage' --> 'testcases' --]] local subjectSpace = env.subjectSpace local title = env.title local subpage = title.subpageText if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then return mw.title.makeTitle(subjectSpace, title.baseText) else return mw.title.makeTitle(subjectSpace, title.text) end end function envFuncs.docTitle() --[[ -- Title object of the /doc subpage. -- Messages: -- 'doc-subpage' --> 'doc' --]] local title = env.title local docname = args[1] -- User-specified doc page. local docpage if docname then docpage = docname else docpage = env.docpageBase .. '/' .. message('doc-subpage') end return mw.title.new(docpage) end function envFuncs.sandboxTitle() --[[ -- Title object for the /sandbox subpage. -- Messages: -- 'sandbox-subpage' --> 'sandbox' --]] return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage')) end function envFuncs.testcasesTitle() --[[ -- Title object for the /testcases subpage. -- Messages: -- 'testcases-subpage' --> 'testcases' --]] return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) end function envFuncs.printTitle() --[[ -- Title object for the /Print subpage. -- Messages: -- 'print-subpage' --> 'Print' --]] return env.templateTitle:subPageTitle(message('print-subpage')) end function envFuncs.protectionLevels() -- The protection levels table of the title object. return env.title.protectionLevels end function envFuncs.subjectSpace() -- The subject namespace number. return mw.site.namespaces[env.title.namespace].subject.id end function envFuncs.docSpace() -- The documentation namespace number. For most namespaces this is the -- same as the subject namespace. However, pages in the Article, File, -- MediaWiki or Category namespaces must have their /doc, /sandbox and -- /testcases pages in talk space. local subjectSpace = env.subjectSpace if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then return subjectSpace + 1 else return subjectSpace end end function envFuncs.docpageBase() -- The base page of the /doc, /sandbox, and /testcases subpages. -- For some namespaces this is the talk page, rather than the template page. local templateTitle = env.templateTitle local docSpace = env.docSpace local docSpaceText = mw.site.namespaces[docSpace].name -- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon. return docSpaceText .. ':' .. templateTitle.text end function envFuncs.compareUrl() -- Diff link between the sandbox and the main template using [[Special:ComparePages]]. local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle if templateTitle.exists and sandboxTitle.exists then local compareUrl = mw.uri.fullUrl( 'Special:ComparePages', { page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} ) return tostring(compareUrl) else return nil end end return env end ---------------------------------------------------------------------------- -- Auxiliary templates ---------------------------------------------------------------------------- p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext') function p._getModuleWikitext(args, env) local currentTitle = mw.title.getCurrentTitle() if currentTitle.contentModel ~= 'Scribunto' then return end pcall(require, currentTitle.prefixedText) -- if it fails, we don't care local moduleWikitext = package.loaded["Module:Module wikitext"] if moduleWikitext then return moduleWikitext.main() end end function p.sandboxNotice(args, env) --[=[ -- Generates a sandbox notice for display above sandbox pages. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]' -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' -- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page' -- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page' -- 'sandbox-notice-pagetype-other' --> 'sandbox page' -- 'sandbox-notice-compare-link-display' --> 'diff' -- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.' -- 'sandbox-notice-testcases-link-display' --> 'test cases' -- 'sandbox-category' --> 'Template sandboxes' --]=] local title = env.title local sandboxTitle = env.sandboxTitle local templateTitle = env.templateTitle local subjectSpace = env.subjectSpace if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then return nil end -- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text". local omargs = {} omargs.image = message('sandbox-notice-image') -- Get the text. We start with the opening blurb, which is something like -- "This is the template sandbox for [[Template:Foo]] (diff)." local text = '' local pagetype if subjectSpace == 10 then pagetype = message('sandbox-notice-pagetype-template') elseif subjectSpace == 828 then pagetype = message('sandbox-notice-pagetype-module') else pagetype = message('sandbox-notice-pagetype-other') end local templateLink = makeWikilink(templateTitle.prefixedText) local compareUrl = env.compareUrl if compareUrl then local compareDisplay = message('sandbox-notice-compare-link-display') local compareLink = makeUrlLink(compareUrl, compareDisplay) text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink}) else text = text .. message('sandbox-notice-blurb', {pagetype, templateLink}) end -- Get the test cases page blurb if the page exists. This is something like -- "See also the companion subpage for [[Template:Foo/testcases|test cases]]." local testcasesTitle = env.testcasesTitle if testcasesTitle and testcasesTitle.exists then if testcasesTitle.contentModel == "Scribunto" then local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink}) else local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) end end -- Add the sandbox to the sandbox category. omargs.text = text .. makeCategoryLink(message('sandbox-category')) -- 'documentation-clear' return '<div class="' .. message('clear') .. '"></div>' .. require('Module:Message box').main('ombox', omargs) end function p.protectionTemplate(env) -- Generates the padlock icon in the top right. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'protection-template' --> 'pp-template' -- 'protection-template-args' --> {docusage = 'yes'} local protectionLevels = env.protectionLevels if not protectionLevels then return nil end local editProt = protectionLevels.edit and protectionLevels.edit[1] local moveProt = protectionLevels.move and protectionLevels.move[1] if editProt then -- The page is edit-protected. return require('Module:Protection banner')._main{ message('protection-reason-edit'), small = true } elseif moveProt and moveProt ~= 'autoconfirmed' then -- The page is move-protected but not edit-protected. Exclude move -- protection with the level "autoconfirmed", as this is equivalent to -- no move protection at all. return require('Module:Protection banner')._main{ action = 'move', small = true } else return nil end end ---------------------------------------------------------------------------- -- Start box ---------------------------------------------------------------------------- p.startBox = makeInvokeFunc('_startBox') function p._startBox(args, env) --[[ -- This function generates the start box. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox -- which generate the box HTML. --]] env = env or p.getEnvironment(args) local links local content = args.content if not content or args[1] then -- No need to include the links if the documentation is on the template page itself. local linksData = p.makeStartBoxLinksData(args, env) if linksData then links = p.renderStartBoxLinks(linksData) end end -- Generate the start box html. local data = p.makeStartBoxData(args, env, links) if data then return p.renderStartBox(data) else -- User specified no heading. return nil end end function p.makeStartBoxLinksData(args, env) --[[ -- Does initial processing of data to make the [view] [edit] [history] [purge] links. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'view-link-display' --> 'view' -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'purge-link-display' --> 'purge' -- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'docpage-preload' --> 'Template:Documentation/preload' -- 'create-link-display' --> 'create' --]] local subjectSpace = env.subjectSpace local title = env.title local docTitle = env.docTitle if not title or not docTitle then return nil end if docTitle.isRedirect then docTitle = docTitle.redirectTarget end local data = {} data.title = title data.docTitle = docTitle -- View, display, edit, and purge links if /doc exists. data.viewLinkDisplay = message('view-link-display') data.editLinkDisplay = message('edit-link-display') data.historyLinkDisplay = message('history-link-display') data.purgeLinkDisplay = message('purge-link-display') -- Create link if /doc doesn't exist. local preload = args.preload if not preload then if subjectSpace == 6 then -- File namespace preload = message('file-docpage-preload') elseif subjectSpace == 828 then -- Module namespace preload = message('module-preload') else preload = message('docpage-preload') end end data.preload = preload data.createLinkDisplay = message('create-link-display') return data end function p.renderStartBoxLinks(data) --[[ -- Generates the [view][edit][history][purge] or [create] links from the data table. -- @data - a table of data generated by p.makeStartBoxLinksData --]] local function escapeBrackets(s) -- Escapes square brackets with HTML entities. s = s:gsub('%[', '&#91;') -- Replace square brackets with HTML entities. s = s:gsub('%]', '&#93;') return s end local ret local docTitle = data.docTitle local title = data.title if docTitle.exists then local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay) local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay) local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay) ret = '[%s] [%s] [%s] [%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink) else local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) ret = '[%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, createLink) end return ret end function p.makeStartBoxData(args, env, links) --[=[ -- Does initial processing of data to pass to the start-box render function, p.renderStartBox. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error. -- -- Messages: -- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- 'template-namespace-heading' --> 'Template documentation' -- 'module-namespace-heading' --> 'Module documentation' -- 'file-namespace-heading' --> 'Summary' -- 'other-namespaces-heading' --> 'Documentation' -- 'testcases-create-link-display' --> 'create' --]=] local subjectSpace = env.subjectSpace if not subjectSpace then -- Default to an "other namespaces" namespace, so that we get at least some output -- if an error occurs. subjectSpace = 2 end local data = {} -- Heading local heading = args.heading -- Blank values are not removed. if heading == '' then -- Don't display the start box if the heading arg is defined but blank. return nil end if heading then data.heading = heading elseif subjectSpace == 10 then -- Template namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') elseif subjectSpace == 828 then -- Module namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') elseif subjectSpace == 6 then -- File namespace data.heading = message('file-namespace-heading') else data.heading = message('other-namespaces-heading') end -- Heading CSS local headingStyle = args['heading-style'] if headingStyle then data.headingStyleText = headingStyle else -- 'documentation-heading' data.headingClass = message('main-div-heading-class') end -- Data for the [view][edit][history][purge] or [create] links. if links then -- 'mw-editsection-like plainlinks' data.linksClass = message('start-box-link-classes') data.links = links end return data end function p.renderStartBox(data) -- Renders the start box html. -- @data - a table of data generated by p.makeStartBoxData. local sbox = mw.html.create('div') sbox -- 'documentation-startbox' :addClass(message('start-box-class')) :newline() :tag('span') :addClass(data.headingClass) :cssText(data.headingStyleText) :wikitext(data.heading) local links = data.links if links then sbox:tag('span') :addClass(data.linksClass) :attr('id', data.linksId) :wikitext(links) end return tostring(sbox) end ---------------------------------------------------------------------------- -- Documentation content ---------------------------------------------------------------------------- p.content = makeInvokeFunc('_content') function p._content(args, env) -- Displays the documentation contents -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment env = env or p.getEnvironment(args) local docTitle = env.docTitle local content = args.content if not content and docTitle and docTitle.exists then content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText} end -- The line breaks below are necessary so that "=== Headings ===" at the start and end -- of docs are interpreted correctly. return '\n' .. (content or '') .. '\n' end p.contentTitle = makeInvokeFunc('_contentTitle') function p._contentTitle(args, env) env = env or p.getEnvironment(args) local docTitle = env.docTitle if not args.content and docTitle and docTitle.exists then return docTitle.prefixedText else return '' end end ---------------------------------------------------------------------------- -- End box ---------------------------------------------------------------------------- p.endBox = makeInvokeFunc('_endBox') function p._endBox(args, env) --[=[ -- This function generates the end box (also known as the link box). -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- --]=] -- Get environment data. env = env or p.getEnvironment(args) local subjectSpace = env.subjectSpace local docTitle = env.docTitle if not subjectSpace or not docTitle then return nil end -- Check whether we should output the end box at all. Add the end -- box by default if the documentation exists or if we are in the -- user, module or template namespaces. local linkBox = args['link box'] if linkBox == 'off' or not ( docTitle.exists or subjectSpace == 2 or subjectSpace == 828 or subjectSpace == 10 ) then return nil end -- Assemble the link box. local text = '' if linkBox then text = text .. linkBox else text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]." if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then -- We are in the user, template or module namespaces. -- Add sandbox and testcases links. -- "Editors can experiment in this template's sandbox and testcases pages." text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />' if not args.content and not args[1] then -- "Please add categories to the /doc subpage." -- Don't show this message with inline docs or with an explicitly specified doc page, -- as then it is unclear where to add the categories. text = text .. (p.makeCategoriesBlurb(args, env) or '') end text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates. if printBlurb then text = text .. '<br />' .. printBlurb end end end local box = mw.html.create('div') -- 'documentation-metadata' box:attr('role', 'note') :addClass(message('end-box-class')) -- 'plainlinks' :addClass(message('end-box-plainlinks')) :wikitext(text) :done() return '\n' .. tostring(box) end function p.makeDocPageBlurb(args, env) --[=[ -- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)". -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'transcluded-from-blurb' --> -- 'The above [[Wikipedia:Template documentation|documentation]] -- is [[Help:Transclusion|transcluded]] from $1.' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'create-link-display' --> 'create' -- 'create-module-doc-blurb' --> -- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' --]=] local docTitle = env.docTitle if not docTitle then return nil end local ret if docTitle.exists then -- /doc exists; link to it. local docLink = makeWikilink(docTitle.prefixedText) local editUrl = docTitle:fullUrl{action = 'edit'} local editDisplay = message('edit-link-display') local editLink = makeUrlLink(editUrl, editDisplay) local historyUrl = docTitle:fullUrl{action = 'history'} local historyDisplay = message('history-link-display') local historyLink = makeUrlLink(historyUrl, historyDisplay) ret = message('transcluded-from-blurb', {docLink}) .. ' ' .. makeToolbar(editLink, historyLink) .. '<br />' elseif env.subjectSpace == 828 then -- /doc does not exist; ask to create it. local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} local createDisplay = message('create-link-display') local createLink = makeUrlLink(createUrl, createDisplay) ret = message('create-module-doc-blurb', {createLink}) .. '<br />' end return ret end function p.makeExperimentBlurb(args, env) --[[ -- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-link-display' --> 'sandbox' -- 'sandbox-edit-link-display' --> 'edit' -- 'compare-link-display' --> 'diff' -- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'sandbox-create-link-display' --> 'create' -- 'mirror-edit-summary' --> 'Create sandbox version of $1' -- 'mirror-link-display' --> 'mirror' -- 'mirror-link-preload' --> 'Template:Documentation/mirror' -- 'sandbox-link-display' --> 'sandbox' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display'--> 'edit' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'testcases-create-link-display' --> 'create' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display' --> 'edit' -- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases' -- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases' -- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.' -- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle local testcasesTitle = env.testcasesTitle local templatePage = templateTitle.prefixedText if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then return nil end -- Make links. local sandboxLinks, testcasesLinks if sandboxTitle.exists then local sandboxPage = sandboxTitle.prefixedText local sandboxDisplay = message('sandbox-link-display') local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} local sandboxEditDisplay = message('sandbox-edit-link-display') local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) local compareUrl = env.compareUrl local compareLink if compareUrl then local compareDisplay = message('compare-link-display') compareLink = makeUrlLink(compareUrl, compareDisplay) end sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink) else local sandboxPreload if subjectSpace == 828 then sandboxPreload = message('module-sandbox-preload') else sandboxPreload = message('template-sandbox-preload') end local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} local sandboxCreateDisplay = message('sandbox-create-link-display') local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) local mirrorPreload = message('mirror-link-preload') local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} if subjectSpace == 828 then mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} end local mirrorDisplay = message('mirror-link-display') local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) end if testcasesTitle.exists then local testcasesPage = testcasesTitle.prefixedText local testcasesDisplay = message('testcases-link-display') local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} local testcasesEditDisplay = message('testcases-edit-link-display') local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) -- for Modules, add testcases run link if exists if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then local testcasesRunLinkDisplay = message('testcases-run-link-display') local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink) else testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) end else local testcasesPreload if subjectSpace == 828 then testcasesPreload = message('module-testcases-preload') else testcasesPreload = message('template-testcases-preload') end local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} local testcasesCreateDisplay = message('testcases-create-link-display') local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) end local messageName if subjectSpace == 828 then messageName = 'experiment-blurb-module' else messageName = 'experiment-blurb-template' end return message(messageName, {sandboxLinks, testcasesLinks}) end function p.makeCategoriesBlurb(args, env) --[[ -- Generates the text "Please add categories to the /doc subpage." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'doc-link-display' --> '/doc' -- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.' --]] local docTitle = env.docTitle if not docTitle then return nil end local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) return message('add-categories-blurb', {docPathLink}) end function p.makeSubpagesBlurb(args, env) --[[ -- Generates the "Subpages of this template" link. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'template-pagetype' --> 'template' -- 'module-pagetype' --> 'module' -- 'default-pagetype' --> 'page' -- 'subpages-link-display' --> 'Subpages of this $1' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle if not subjectSpace or not templateTitle then return nil end local pagetype if subjectSpace == 10 then pagetype = message('template-pagetype') elseif subjectSpace == 828 then pagetype = message('module-pagetype') else pagetype = message('default-pagetype') end local subpagesLink = makeWikilink( 'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', message('subpages-link-display', {pagetype}) ) return message('subpages-blurb', {subpagesLink}) end function p.makePrintBlurb(args, env) --[=[ -- Generates the blurb displayed when there is a print version of the template available. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'print-link-display' --> '/Print' -- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]' -- .. ' of this template exists at $1.' -- .. ' If you make a change to this template, please update the print version as well.' -- 'display-print-category' --> true -- 'print-category' --> 'Templates with print versions' --]=] local printTitle = env.printTitle if not printTitle then return nil end local ret if printTitle.exists then local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display')) ret = message('print-blurb', {printLink}) local displayPrintCategory = message('display-print-category', nil, 'boolean') if displayPrintCategory then ret = ret .. makeCategoryLink(message('print-category')) end end return ret end ---------------------------------------------------------------------------- -- Tracking categories ---------------------------------------------------------------------------- function p.addTrackingCategories(env) --[[ -- Check if {{documentation}} is transcluded on a /doc or /testcases page. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'display-strange-usage-category' --> true -- 'doc-subpage' --> 'doc' -- 'testcases-subpage' --> 'testcases' -- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage' -- -- /testcases pages in the module namespace are not categorised, as they may have -- {{documentation}} transcluded automatically. --]] local title = env.title local subjectSpace = env.subjectSpace if not title or not subjectSpace then return nil end local subpage = title.subpageText local ret = '' if message('display-strange-usage-category', nil, 'boolean') and ( subpage == message('doc-subpage') or subjectSpace ~= 828 and subpage == message('testcases-subpage') ) then ret = ret .. makeCategoryLink(message('strange-usage-category')) end return ret end return p e83fdbf15868a3649a3fca55a29da23416566f02 Template:Tfm/dated 10 199 305 2021-03-08T00:08:08Z Wikipedia_Templates>SMcCandlish 0 markup cleanup (<br> isn't an outright error in HTML5, but it confuses some syntax highlighters, etc.) wikitext text/x-wiki {{ {{{|safesubst:}}}#invoke:Unsubst||type= |page= |link= |help= |$B={{#ifeq:{{{bigbox|<noinclude>yes</noinclude>}}}|yes|{{Ombox |type = move |image = none |class = nomobile mbox-tfd |small = {{{small|no}}} |text = This {{#ifeq:{{lc:{{{type}}}}}|module|[[Help:Module|module]]|[[Help:Template|template]]}} is '''being considered for merging with [[{{#ifeq:{{lc:{{{type}}}}}|module|Module|Template}}:{{{otherpage}}}]].''' Please discuss this matter at [[{{{link}}}|'''this {{#ifeq:{{lc:{{{type}}}}}|module|module|template}}'s entry''']] at templates for discussion to help reach a consensus. {{#ifeq:{{{help}}}|off||---- ''<small class="plainlinks" style="line-height:1.3em;">[[Wikipedia:Maintenance|Maintenance]] use only:<br />1. [{{fullurl:{{{link}}}|action=edit&editintro=Wikipedia:Templates_for_discussion/editnotice&section=1}} Edit the TfD log] to create the discussion entry.<br />2. Please consider notifying the [{{fullurl:{{FULLPAGENAME}}|action=history}} author(s)] by placing <span class="nowrap">{{tlx|Tfmnotice|{{{page}}}|{{{otherpage}}}|subst=yes}} <nowiki>~~~~</nowiki></span> on their talk page(s).</small>'' }}}}{{category handler | all = [[Category:Templates for merging]] | nocat = {{{nocat|{{#ifeq:{{Template:FULLBASEPAGENAME|{{FULLBASEPAGENAME}}}}|Template:Tfm|true}}}}} | category2 = {{{category|¬}}} }}|{{#switch:{{lc:{{{type}}}}} |tiny = <span style="padding: 0; font-size: xx-small; font-weight: bold; color: #000000; background-color: #f9f9f9;" class="tfd">[[{{{link}}}|‹See TfM›]]</span> |inline = <span style="padding: 0; font-size: xx-small; color: #000; border: 1px solid #aaa; background-color: #f9f9f9;" class="tfd">‹The [[Help:Template|template]] ''[[Template:{{{page}}}|{{{page}}}]]'' is being [[{{{link}}}|considered for merging]].›</span>&nbsp; |infobox|box|sidebar = <div class="boilerplate metadata plainlinks tfd" id="tfd" style="background-color: transparent; padding: 0 0.2em; color: #000; text-align: center; position: relative; float: right; clear: right; width: {{#if:{{{width|}}}|{{{width}}}|20em}}"><span style="font-size: xx-small;">‹&nbsp;The [[Help:Template|template]] ''[[Template:{{{page}}}|{{{page}}}]]'' is being [[{{{link}}}|considered for merging]].&nbsp;›</span></div> |disabled = <!-- No output --> |#default = <div class="boilerplate metadata plainlinks tfd" id="tfd" style="background-color: transparent; padding: 0; font-size:xx-small; color:#000000; text-align: center; border-bottom:1px solid #AAAAAA; overflow:hidden;">‹&nbsp;The [[Help:Template|template]] below (''[[Template:{{{page}}}|{{{page}}}]]'') is being considered for merging. See [[{{{link}}}|templates for discussion]] to help reach a consensus.&nbsp;›</div> }}}}}}<noinclude> {{Documentation}} </noinclude> 0eaea4bece59b32fb8f23df8026eb67e263d9555 Development Team 0 10 18 2021-03-22T13:44:25Z Development_Team>Zyenathalous 0 /* ACTIVE */ wikitext text/x-wiki == EvEMU Developers == === Current Main Developers === ==== ACTIVE ==== * Allan * James ==== INACTIVE ==== * [Senior Developer] Bloody.Rabbit * [Senior Developer] Captnoord (Co-Founder Per Se) * [Senior Developer] Luck * [Senior Developer] Aknor_Jaden * [Assistant Developer] ozatomic * [Assistant Developer] Reve === Part-Time Developers (Patch Stuff Mostly) === * Almamu === Past Developers === * Beast * Zhur (Founder, is MIA) == EvEMU Control Panel Developers == === Current Main Developers === * Hurracane (Founder) bbbc641307247f567fc18e44277d4b27a853aa3a 19 18 2021-04-03T11:36:23Z Admin 1 1 revision imported wikitext text/x-wiki == EvEMU Developers == === Current Main Developers === ==== ACTIVE ==== * Allan * James ==== INACTIVE ==== * [Senior Developer] Bloody.Rabbit * [Senior Developer] Captnoord (Co-Founder Per Se) * [Senior Developer] Luck * [Senior Developer] Aknor_Jaden * [Assistant Developer] ozatomic * [Assistant Developer] Reve === Part-Time Developers (Patch Stuff Mostly) === * Almamu === Past Developers === * Beast * Zhur (Founder, is MIA) == EvEMU Control Panel Developers == === Current Main Developers === * Hurracane (Founder) bbbc641307247f567fc18e44277d4b27a853aa3a Development Practices 0 9 16 2021-03-22T13:53:17Z Development_Practices>Zyenathalous 0 /* Source Control */ wikitext text/x-wiki '''This page is devoted to describing the best practices, methods, and policies that EVEmu Developers espouse to uphold while working on the EVEmu Project. All Developers are expected to follow these guidelines and policies all in the effort to ensure a smoothly executed development <nowiki> </nowiki>process and collaborative effort to produce great quality code and a great product.''' = Source Control = TODO: describe how we use github, git, repos, branches, tags, and merges. '''GIT''': * Our process for developers to contribute: *# Get your '''own''' account on '''Github''' and '''Fork''' the evemuproject repository for which you wish to contribute (evemu_server, evemu_control_panel, etc) *# Git clone your fork on github to your local machine - Github's help on forking a repo and cloning it *# Make some changes to code as you work on a feature implementation, enhancement, or bug fix *# Commit those changes with a descriptive commit message (see below at '''Commits''') *# If the feature is not working yet because you have more changes to make, repeat the previous two steps until you have something worth posting up for the community to review and try out *# When you're ready to post a bundle of commits as a Pull Request, first, exit Visual Studio, then RE-run CMake Configure then Generate. Open Visual Studio again and do a FULL REBUILD of the '''ALL_BUILD''' project. When the build is finished, run the server and in the console window, ensure the '''version:''' reads the latest tag, the master branch, and your latest commit ID, something like '''0.7.12-master-ba5d6d3'''. The first three numbers are the tag (at git cmd line, type '''git tag''' to list all tags, see which is highest). The middle string is your branch (should be master unless you're working on a parallel branch). The last is your latest commitID (at git cmd line, type '''git log --oneline''' and at top of that list on the left is your latest commitID showing the first 7 digits or so). *# After you've ensured your build matches the latest tag and commitID, go to your Github account page under your fork of the repository you're working on, then either click on the green square button to the left of the branch change drop-down (below the # of commits display) OR click on the label '''Pull Request''' to the upper right of the area that lists the folders and files in your repository. It's to the left of a label '''Compare''' in the heading bar above the list of files and folders. *# Next, click the button with blue box border labeled '''Click to create a pull request for this comparison''' *# Right away, Github gives you feedback on whether the maintainers of the repository to which you're pushing a pull request will be able to automatically merge your pull request's changes. If you don't get the green check mark and the message '''Able to merge''', then you'll need to bring your fork up to date with the original repository and try again. *# If you do get the green check, enter a Title and Description for your pull request and click '''Send Pull Request''' button and away it goes! *# Please be patient as it will take some time for the EVEmu Development team to review and discuss, perhaps even test, your pull request's changes. It may even be rejected, but the team will provide some helpful comments on the pull request whether it has been rejected or not. These things are often an iterative process, so be patient and be prepared to expect to have to make further changes before the development team accepts the pull request. The higher quality code changes you make and the more you discussed the changes with developers ahead of submitting the pull request, the more likely your pull request may be accepted on the first round after some review period. '''Commits''': * when making commits, keep them small, a few files or so, and commit OFTEN! this leaves you nice history of your work as it progresses * when making commits, either use a GUI such as '''SmartGitHg''' or '''git gui''' to write your commit messages, stage files for commit, and ultimately commit the changes and even push them up to your fork for issuance of a pull request to the main evemuproject project page * write commit messages that make sense and are descriptive enough to tell others what you did and why ** BAD Commit message: '''i changed some code''' ** MEH Commit message: '''i added some classes to the module manager''' ** BEST Commit message: '''Added Effects, EffectsMap, and ShipBonusModifierMap classes to the ModuleManager effort. Updated SQL files for the following tables 'dgmEffectsInfo', 'dgmShipBonusModifiers' to match the data pulled and reformatted from EVEHQ CSV files. Added completed LibreOffice spreadsheets for the following EVEHQ CSV files: Effects.ods, ShipBonuses.ods, SkillBonuses.ods''' * when making commits as part of a larger effort, such as to fix Private Convos in the LSC system, or implement P2P trades in the Trade Service, keep your commits local until you have a feature working, then post up a pull request with a bundle of commits rather than posting pull requests for each small commit you make * '''PLEASE'''....after making a pull request, wait until it has been approved before committing additional files to avoid unnecessarily large PRs. == Coding styles and standards == While we do not have a formal coding style guide, let me put it as simply as I can: * Please stay within the spirit of the design and styles that you see already being used in the code, to the extent that you can. * Please do not do major edits of whitespace all over (changing tabs to 4-space chunks, making separation between functions 2 lines instead of one, etc) * Please do not make large edits of comments, but rather keep them compartmentalized into sections of code, such as within the LSC chat system or Ship class == Bug reporting == [https://github.com/evemuproject/evemu_server/issues Every bug should be reported on our github's project page] '''IMPORTANT '''- Before posting a bug, please take a few minutes to search the bug database for the project you're working on to see if someone else already reported the bug. If this is similar to another bug or bugs, we can link them together, but it's ok to post a new bug if <nowiki> </nowiki>there are aspects about it that are unique from the other similar bug reports. Please post bugs using the following format: * '''PROBLEM''' ** Describe what the problem is and what you were doing when it occurred. Please post server console log in EVEmu's Pastebin and mark expiration as NEVER, then post a link to that pastebin in this section. Feel free to upload to imgur.com or other photo sharing site a screenshot of the client if applicable when something weird or unexpected happens and link to the image in this section. * '''STEPS TO REPRODUCE''' ** In this section, please describe in as best a detail and accuracy as you can the steps someone else must take in order to reproduce this problem. It is absolutely essential that developers and bug fixers have these steps as they must be able to reproduce the bugs or crashes in order to start investigating them and eventually fix them. We certainly understand if you cannot recall or are somehow unable to describe how the problem occurred. If that is the case, please do your best in describing how you came about the crash or bug and what you were doing leading up to when it happened. * '''WORKAROUNDS''' ** This section is meant to capture known methods by which you can accomplish what you were trying to do, but in a slightly different way. An example could be "I was trying to buy something off the market, but opening up the market window crashed the server." For this, a possible effective workaround would be "I can still use .create GM command to give myself the item I wanted." * '''PROPOSED SOLUTIONS''' ** This section is really reserved for developers posting bugs that may be somewhat or very familiar with the systems behind the scenes in the server that relate to the bug or crash. This section is meant to be a notepad of sorts to jot down ideas as to how the problem could be fixed or circumvented when they are fresh in the mind of the developer that encountered the bug or crash. Most users and testers may leave this blank unless you think you have a good idea :) b7f52859277ebf3d5d36714c2a497e781a72984d 17 16 2021-04-03T11:36:15Z Admin 1 1 revision imported wikitext text/x-wiki '''This page is devoted to describing the best practices, methods, and policies that EVEmu Developers espouse to uphold while working on the EVEmu Project. All Developers are expected to follow these guidelines and policies all in the effort to ensure a smoothly executed development <nowiki> </nowiki>process and collaborative effort to produce great quality code and a great product.''' = Source Control = TODO: describe how we use github, git, repos, branches, tags, and merges. '''GIT''': * Our process for developers to contribute: *# Get your '''own''' account on '''Github''' and '''Fork''' the evemuproject repository for which you wish to contribute (evemu_server, evemu_control_panel, etc) *# Git clone your fork on github to your local machine - Github's help on forking a repo and cloning it *# Make some changes to code as you work on a feature implementation, enhancement, or bug fix *# Commit those changes with a descriptive commit message (see below at '''Commits''') *# If the feature is not working yet because you have more changes to make, repeat the previous two steps until you have something worth posting up for the community to review and try out *# When you're ready to post a bundle of commits as a Pull Request, first, exit Visual Studio, then RE-run CMake Configure then Generate. Open Visual Studio again and do a FULL REBUILD of the '''ALL_BUILD''' project. When the build is finished, run the server and in the console window, ensure the '''version:''' reads the latest tag, the master branch, and your latest commit ID, something like '''0.7.12-master-ba5d6d3'''. The first three numbers are the tag (at git cmd line, type '''git tag''' to list all tags, see which is highest). The middle string is your branch (should be master unless you're working on a parallel branch). The last is your latest commitID (at git cmd line, type '''git log --oneline''' and at top of that list on the left is your latest commitID showing the first 7 digits or so). *# After you've ensured your build matches the latest tag and commitID, go to your Github account page under your fork of the repository you're working on, then either click on the green square button to the left of the branch change drop-down (below the # of commits display) OR click on the label '''Pull Request''' to the upper right of the area that lists the folders and files in your repository. It's to the left of a label '''Compare''' in the heading bar above the list of files and folders. *# Next, click the button with blue box border labeled '''Click to create a pull request for this comparison''' *# Right away, Github gives you feedback on whether the maintainers of the repository to which you're pushing a pull request will be able to automatically merge your pull request's changes. If you don't get the green check mark and the message '''Able to merge''', then you'll need to bring your fork up to date with the original repository and try again. *# If you do get the green check, enter a Title and Description for your pull request and click '''Send Pull Request''' button and away it goes! *# Please be patient as it will take some time for the EVEmu Development team to review and discuss, perhaps even test, your pull request's changes. It may even be rejected, but the team will provide some helpful comments on the pull request whether it has been rejected or not. These things are often an iterative process, so be patient and be prepared to expect to have to make further changes before the development team accepts the pull request. The higher quality code changes you make and the more you discussed the changes with developers ahead of submitting the pull request, the more likely your pull request may be accepted on the first round after some review period. '''Commits''': * when making commits, keep them small, a few files or so, and commit OFTEN! this leaves you nice history of your work as it progresses * when making commits, either use a GUI such as '''SmartGitHg''' or '''git gui''' to write your commit messages, stage files for commit, and ultimately commit the changes and even push them up to your fork for issuance of a pull request to the main evemuproject project page * write commit messages that make sense and are descriptive enough to tell others what you did and why ** BAD Commit message: '''i changed some code''' ** MEH Commit message: '''i added some classes to the module manager''' ** BEST Commit message: '''Added Effects, EffectsMap, and ShipBonusModifierMap classes to the ModuleManager effort. Updated SQL files for the following tables 'dgmEffectsInfo', 'dgmShipBonusModifiers' to match the data pulled and reformatted from EVEHQ CSV files. Added completed LibreOffice spreadsheets for the following EVEHQ CSV files: Effects.ods, ShipBonuses.ods, SkillBonuses.ods''' * when making commits as part of a larger effort, such as to fix Private Convos in the LSC system, or implement P2P trades in the Trade Service, keep your commits local until you have a feature working, then post up a pull request with a bundle of commits rather than posting pull requests for each small commit you make * '''PLEASE'''....after making a pull request, wait until it has been approved before committing additional files to avoid unnecessarily large PRs. == Coding styles and standards == While we do not have a formal coding style guide, let me put it as simply as I can: * Please stay within the spirit of the design and styles that you see already being used in the code, to the extent that you can. * Please do not do major edits of whitespace all over (changing tabs to 4-space chunks, making separation between functions 2 lines instead of one, etc) * Please do not make large edits of comments, but rather keep them compartmentalized into sections of code, such as within the LSC chat system or Ship class == Bug reporting == [https://github.com/evemuproject/evemu_server/issues Every bug should be reported on our github's project page] '''IMPORTANT '''- Before posting a bug, please take a few minutes to search the bug database for the project you're working on to see if someone else already reported the bug. If this is similar to another bug or bugs, we can link them together, but it's ok to post a new bug if <nowiki> </nowiki>there are aspects about it that are unique from the other similar bug reports. Please post bugs using the following format: * '''PROBLEM''' ** Describe what the problem is and what you were doing when it occurred. Please post server console log in EVEmu's Pastebin and mark expiration as NEVER, then post a link to that pastebin in this section. Feel free to upload to imgur.com or other photo sharing site a screenshot of the client if applicable when something weird or unexpected happens and link to the image in this section. * '''STEPS TO REPRODUCE''' ** In this section, please describe in as best a detail and accuracy as you can the steps someone else must take in order to reproduce this problem. It is absolutely essential that developers and bug fixers have these steps as they must be able to reproduce the bugs or crashes in order to start investigating them and eventually fix them. We certainly understand if you cannot recall or are somehow unable to describe how the problem occurred. If that is the case, please do your best in describing how you came about the crash or bug and what you were doing leading up to when it happened. * '''WORKAROUNDS''' ** This section is meant to capture known methods by which you can accomplish what you were trying to do, but in a slightly different way. An example could be "I was trying to buy something off the market, but opening up the market window crashed the server." For this, a possible effective workaround would be "I can still use .create GM command to give myself the item I wanted." * '''PROPOSED SOLUTIONS''' ** This section is really reserved for developers posting bugs that may be somewhat or very familiar with the systems behind the scenes in the server that relate to the bug or crash. This section is meant to be a notepad of sorts to jot down ideas as to how the problem could be fixed or circumvented when they are fresh in the mind of the developer that encountered the bug or crash. Most users and testers may leave this blank unless you think you have a good idea :) b7f52859277ebf3d5d36714c2a497e781a72984d Template:Template link 10 181 269 2021-03-25T19:03:22Z Wikipedia_Templates>Izno 0 [[Wikipedia:Templates for discussion/Log/2021 March 18#Template:Tlu]] closed as keep ([[WP:XFDC#4.0.11|XFDcloser]]) wikitext text/x-wiki &#123;&#123;[[Template:{{{1}}}|{{{1}}}]]&#125;&#125;<noinclude>{{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> eabbec62efe3044a98ebb3ce9e7d4d43c222351d Main Page 0 2 3 2 2021-04-03T11:24:53Z Admin 1 1 revision imported: Importing Main Page from old Wiki wikitext text/x-wiki {{T/piece}} {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''[[:Category:Crucible|Crucible]] 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|IRC]] conversations and [[EVEmu Connect#Teamspeak|Teamspeak]] conversations, then [[Getting Started|get started learning the server codebase]] while you learn C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via IRC, Teamspeak, Forums]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} {{Legal}} 5ed0945b325b675734b8f1b98104582c911094d3 4 3 2021-04-03T11:25:34Z Admin 1 Admin moved page [[Evemu Wikia]] to [[EVEmu Wiki:Main Page]] wikitext text/x-wiki {{T/piece}} {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''[[:Category:Crucible|Crucible]] 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|IRC]] conversations and [[EVEmu Connect#Teamspeak|Teamspeak]] conversations, then [[Getting Started|get started learning the server codebase]] while you learn C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via IRC, Teamspeak, Forums]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} {{Legal}} 5ed0945b325b675734b8f1b98104582c911094d3 6 4 2021-04-03T11:25:50Z Admin 1 Admin moved page [[EVEmu Wiki:Main Page]] to [[Main Page]] wikitext text/x-wiki {{T/piece}} {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''[[:Category:Crucible|Crucible]] 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|IRC]] conversations and [[EVEmu Connect#Teamspeak|Teamspeak]] conversations, then [[Getting Started|get started learning the server codebase]] while you learn C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via IRC, Teamspeak, Forums]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} {{Legal}} 5ed0945b325b675734b8f1b98104582c911094d3 Evemu Wikia 0 3 5 2021-04-03T11:25:35Z Admin 1 Admin moved page [[Evemu Wikia]] to [[EVEmu Wiki:Main Page]] wikitext text/x-wiki #REDIRECT [[EVEmu Wiki:Main Page]] c06b8a3d5e1e5dd9d7f9328ae5dc701ab53bcf69 EVEmu Wiki:Main Page 4 4 7 2021-04-03T11:25:50Z Admin 1 Admin moved page [[EVEmu Wiki:Main Page]] to [[Main Page]] wikitext text/x-wiki #REDIRECT [[Main Page]] c222ad63e9e6a1e286ff83e0861447ce17bf759f Building on Windows with WSL 0 5 9 8 2021-04-03T11:34:07Z Admin 1 1 revision imported wikitext text/x-wiki WIP Windows Subsystem for Linux (WSL) is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10. As such this guide will only work on Windows 10. Start by installing and enabling WSL as per the MSDN [https://msdn.microsoft.com/en-us/commandline/wsl/install_guide installation guide]. Now open Bash on Ubuntu on Windows. Get some dependencies sudo apt install build-essential git cmake libmysqlclient-dev Clone the repository. git clone https://github.com/evemuproject/evemu_server cd evemu_server Make a build directory mkdir build cd build Generate Makefile cmake .. Call make make Everything should compile just fine. 245fbb10d2135ab1d959cda2e7a07f7fa839c6a5 Connect with EVEmu Community 0 6 11 10 2021-04-03T11:34:25Z Admin 1 1 revision imported wikitext text/x-wiki Official GitHub account (at present) is at https://github.com/evemuproject. Redundant backup lives at https://gitlab.com/evemuproject/evemu_server IRC details are on the [[IRC]] page (maybe merge if someone gets wiki admin?) TODO: Add other interface details ad50c72181cca9fcab27109a26dec068e6e88185 Crucible Project Status 0 7 13 12 2021-04-03T11:35:58Z Admin 1 1 revision imported wikitext text/x-wiki {{NavBar|3|[[Main Page|HOME]]|[[EVEmu Development]]|Server Status (Crucuble)}} = Crucible = {{Progress bar|10|width=100%}} __TOC__ == Development Activities == Various developers are working on their little preferred areas and pet projects, so head on over to the [[EVEmu Development Team]] page to see what they are currently working on at the moment. == Features == This is a comprehensive list of medium to high level features of the entire game experience that we've identified so far are ones we want to work on to fully implement as best as we are able to. If anyone finds something missing from this list, please feel free to post something in the [[Forums|Development Forum]] or find a [[EVEmu Development Team|developer]] in [[IRC]]. {{-}} {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- |Login | class="working" |{{Progress bar|95|text=''}} ||Character Selection Screen still needs all character info changed from static data to data pulled from database (balance, current location, skill points, etc) |- | class="heading" colspan="3" |Character |- | - Selection | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Creation | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Skill Training | class="working" |{{Progress bar|100|text=''}} ||Working, with bugs |- | - Market Buying/Selling? | class="working" |{{Progress bar|100|text=''}} ||Testing Needed |- | - Modules | class="working" |{{Progress bar|5|text=''}} ||Very Early Development |- | - Fleets | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - Ship Combat | class="working" |{{Progress bar|5|text=''}} ||some aspects of targeting do work |- | - Chatting | class="working" |{{Progress bar|80|text=''}} ||Needs testing in Crucible Client |- | - EvE Mail | class="working" |{{Progress bar|50|text=''}} ||Broken (Failed to load mailbox) |- | - Mining | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Station Services | class="working" |{{Progress bar|50|text=''}} ||Mostly NOT working |- | - Missions | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - NPCs | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL - awaiting Modules |- | - POSs | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - Corporations/Alliances | class="working" |{{Progress bar|30|text=''}} ||PARTIALLY WORKS |- | - EvE Server API | class="working" |{{Progress bar|10|text=''}} ||OPERATIONAL, with limited API calls implemented |} == System Foundation Fundamentals == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Efficient, Accurate Packet Deciphering | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Further Mutex-ing | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Complete Object Attribute Management overhaul | class="working" |{{Progress bar|100|text=''}} ||COMPLETE |- | - Complete investigation of remaining database fields | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Proper spawning and item creating | class="working" |{{Progress bar|60|text=''}} ||Many Celestials, All Ships, All Items |- | - Item Handling | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Eliminate all compiler Warnings from the EVEmu solution | class="working" |{{Progress bar|100|text=''}} ||COMPLETE |- | - Complete rewrite/relook at [[Destiny]] | class="working" |{{Progress bar|0|text=''}} ||very buggy |} = All the items need to be verified under new Crucible Client = == General Interface Features == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Get Item Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Ship Info | class="working" |{{Progress bar|90|text=''}} ||Mostly working, for some ships for some reason, it shows nothing |- | - Get Skill Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Certification Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Character Info | class="working" |{{Progress bar|80|text=''}} ||Corporation info is not there, Standing and Decorations tabs broken |- | - Get NPC Corporation Info | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Get Player Corporation Info | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Account and Character Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Account Login | class="working" |{{Progress bar|75|text=''}} ||Mostly working, character select screen data is mostly hard-coded, requires database lookup |- | - Account Banning/Kicking | class="working" |{{Progress bar|60|text=''}} ||In Progress |- | - Character Creation | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character Deletion | class="working" |{{Progress bar|40|text=''}} ||Working, incomplete |- | - Character entrance to last location | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Skills Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Open Certificate Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Open Decorations Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Attributes Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Neural Remap | class="working" |{{Progress bar|0|text=''}} ||Implemented - NEEDS TESTING |- | - Open Augmentations Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Jump Clones Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Bio Window | class="working" |{{Progress bar|75|text=''}} ||unknown |- | - Open Employment History Window | class="working" |{{Progress bar|75|text=''}} ||unknown |- | - Open Standings Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Security Status Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Kill Rights Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Combat Log Window | class="working" |{{Progress bar|0|text=''}} ||unknown |} == Skills - Certificates - Implants - Clones == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Browse Skills to train | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Add skills to queue | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Filter skills that don't fit in queue time remaining | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Apply changes to skill queue | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Skill training time | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click add skill to queue from Skills Window in Character Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Certificate Awarding | class="working" |{{Progress bar|50|text=''}} ||You can claim certificates but it will not promopt you that you have a certificate waiting to be claimed. |} == NPC Station Services == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - In-station Guests List | class="working" |{{Progress bar|90|text=''}} ||Working, with bugs |- | - Can repackage ships/items | class="working" |{{Progress bar|0|text=''}} ||BROKEN - Needs investigation into existing code |- | - Can assemble ships from packaged state | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can leave/make active ships | class="working" |{{Progress bar|90|text=''}} ||Need more Testing, leaving ship in station is broken |- | - Can initiate and finalize trades of items/ships | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Repair Services | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Insurance Services | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Medical Services | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Clone upgrade | class="working" |{{Progress bar|100|text=''}} ||WORKING |- | - Clone transfer | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Jump clone installation | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Items window | class="working" |{{Progress bar|100|text=''}} ||Working |- | - Can merge items | class="working" |{{Progress bar|100|text=''}} ||Working |- | - Can trash/split/trade items | class="working" |{{Progress bar|60|text=''}} ||Partially Working - Trade NOT IMPLEMENTED |- | - Can open/close containers | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can move items into/out of containers | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can inject skills from items | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Agents Tab | class="working" |{{Progress bar|50|text=''}} ||Testing needed |- | - Can initiate conversation with station agent | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Character Interaction Menus == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Right-click Menu in Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click Menu in Chats other than Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click Menu in Station | class="working" |{{Progress bar|100|text=''}} ||Done |} == Chats - Local Corp Custom Private == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Characters show up in Local | class="working" |{{Progress bar|100|text=''}} ||Kinda Working, need testing, character names do not get updated to subsequent clients logging into the system after the first |- | - Chat in Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Characters show up in Corp | class="working" |{{Progress bar|90|text=''}} ||character names do not get updated for subsequent character logins |- | - Chat in Corp | class="working" |{{Progress bar|90|text=''}} || character names do not get updated for subsequent character logins |- | - Initiate Private Conversation Chat | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Create Private Chat Channels | class="working" |{{Progress bar|70|text=''}} ||Working, need testing, password checks and moderators NON-FUNCTIONAL |- | - Joining Created Private Chat Channels | class="working" |{{Progress bar|90|text=''}} ||working, need testing |- | - Chat in Private Chat Channels | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Load Subscribed Public and Private Chat Channels Upon Login | class="working" |{{Progress bar|95|text=''}} ||Mostly working, one empty-named channel loaded for each character (server attempts to load a channel with ID = characterID) |- | - Configure Private Chat Channels | class="working" |{{Progress bar|60|text=''}} ||Working, but need more work |- | - Leave Chat Channels | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Un-subscribe (leave) from Private Chat Channel | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character and Corporation Lookup | class="working" |{{Progress bar|100|text=''}} ||Done |} == EvE Mail == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can Send Eve-mails | class="working" |{{Progress bar|50|text=''}} ||Broken |- | - Can Receive Eve-mails | class="working" |{{Progress bar|0|text=''}} ||Unknown |- | - Can View Eve-mails | class="working" |{{Progress bar|40|text=''}} ||Broken (unable to load mailbox) |- | - Can Reply-to Eve-mails | class="working" |{{Progress bar|50|text=''}} ||Unknown |- | - Can Send Eve-mails to Groups (like Corp) | class="working" |{{Progress bar|0|text=''}} ||Broken |- | - Can Create new Private Mailing Lists | class="working" |{{Progress bar|0|text=''}} ||Need Testing |- | - Newly Created Private Mailing Lists Saved to DB/Restored from DB | class="working" |{{Progress bar|0|text=''}} ||need testing |- | - Can Send/Receive messages in new Private Mailing Lists | class="working" |{{Progress bar|0|text=''}} ||Need testing |} == Module Management == '''Current Status:''' Need SQL Information. {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can drag modules from items to center of Fitting window (auto-insert into slots) | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can drag modules from items to slots in Fitting window | class="working" |{{Progress bar|90|text=''}} ||Need testing |- | - Can Online/Offline modules in slots in Fitting window | class="working" |{{Progress bar|90|text=''}} ||Working - NOT all modules supported |- | - Can remove modules from slots in Fitting window to either cargo, station item list, or container in space | class="working" |{{Progress bar|90|text=''}} ||Working - NOT all modules supportede |- | - Can add/remove charges to modules slots in Fitting window | class="working" |{{Progress bar|30|text=''}} ||unknown |- | - Can move modules from slot to slot in Fitting window | class="working" |{{Progress bar|70|text=''}} ||Maybe - needs testing |- | - Can Activate modules on ship in space | class="working" |{{Progress bar|0|text=''}} ||NON-FUNCTIONAL |- | - Activated modules on ship in space produce desired effect | class="working" |{{Progress bar|0|text=''}} ||NON-FUNCTIONAL |- | - Can De-activate modules on ship in space | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - De-activated modules on ship in space remove desired effect | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Item Properties Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - View every item's properties | class="working" |{{Progress bar|100|text=''}} ||Done |- | - View every item's picture (orange eye button) | class="working" |{{Progress bar|90|text=''}} ||Need testing |} == Market Window - Buy Orders - Sell Orders == === Sell Order === {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Sell Order | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Placing Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Cancelling Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Modify Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |} === Buy Order === {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Buy Orders | class="working" |{{Progress bar|0|text=''}} ||Unknown |} == Assets Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - All Assets View | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED, confirmed (bastrian) |- | - View Assets by Region | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Constellation | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Solar System | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Station | class="working" |{{Progress bar|90|text=''}} ||Need testing |- | - Search Assets | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |} == Wallet Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - View Journal Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Shares Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Orders Entries | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |- | - View Transactions Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Contracts == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Start Page | class="working" |{{Progress bar|50|text=''}} ||Partially Working |- | - Create Contracts | class="working" |{{Progress bar|40|text=''}} ||Partially Working |- | - Get contract info | class="working" |{{Progress bar|80|text=''}} ||Partially Working |- | - List our actual contracts | class="working" |{{Progress bar|60|text=''}} ||NOT IMPLEMENTED |- | - List available contracts | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Delete contracts | class="working" |{{Progress bar|100|text=''}} ||Done |} == Map System == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can search Solar Systems | class="working" |? ||NON-Functional, missing Service call (Requires re-checking) |- | - Can plot routes by searching systems and adding waypoints | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |} == Ship Management in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Interaction with POS modules | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can store/retrieve ships from Ship Maintenance Arrays | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can store/retrieve items from Corporate Hangar Arrays | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Anchor POS modules with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Online/Offline POS modules with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Add/Remove Fuel for Control Tower with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Add/Remove? Charges for Defensive Batteries with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Jettison items into space (make Jet-cans) | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can open Jet-cans and Add/Remove items within them | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can open Containers in space (anchored and unanchored) and Add/Remove items within them | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can eject from ships in space to appear in pod | class="working" |{{Progress bar|70|text=''}} ||Partially working |- | - Ships ejected from stay in space | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Can enter ships in space from pod | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Can name your ship whatever you want | class="working" |{{Progress bar|100|text=''}} ||Done |} == Ship Navigation in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Warp-in from distant random location on LOGIN | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Warp-out to distant random location on LOGOFF | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Warp to celestial object off-grid (a.k.a. Warp-in bug) | class="working" |{{Progress bar|65|text=''}} ||Working better, still hacky |- | - Warp to ship or other object on-grid | class="working" |{{Progress bar|65|text=''}} ||Working better, still hacky |- | - Jumping Stargates | class="working" |{{Progress bar|90|text=''}} ||Mostly perfect, infrequent server stalls for minutes are reported |- | - Right-click -> Approach, then Log Off | class="working" |{{Progress bar|0|text=''}} ||Working |- | - Right-click -> Approach | class="working" |{{Progress bar|90|text=''}} ||Working |- | - Approaching Objects | class="working" |{{Progress bar|90|text=''}} ||Working |- | - Entering Stations | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Exiting Stations | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Autopilot correctly controls ship course, warping to gates, approach to 0m on gate, and jumping to follow planned jump route waypoints. | class="working" |{{Progress bar|90|text=''}} ||Mostly working, need testing |- | - Bookmark system | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmarks loaded from database at character login | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmark a location in space | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmark a station, planet, moon, stargate | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Delete Bookmarks | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Update a Bookmark | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |- | - Copy/move Bookmark(s) to Ship Cargo | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |} == Ship Combat in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can target and lock a ship using overview | class="working" |{{Progress bar|80|text=''}} ||Working, you get Insta-Lock, but progress bar moves as expected |- | - Can activate modules on target-locked ship and modules take effect on target | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Drones | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Launch Drones | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Engage Enemy / Roid | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recall to orbit | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recall To Bay | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Fleet Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can form fleets with other characters | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Fleet chat window | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Fleet management window | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Set fleet/wing/squad commanders | class="broken" |0% ||NOT IMPLEMENTED |- | - Set fleet/wing/squad boosters | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Set fleet/wing/squad bosses | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Broadcast fleet notifications | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Overview Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Selected Item Window | class="working" |{{Progress bar|100|text=''}} ||Done |} == Corporation Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Create a corporation | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Manage Roles | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Corp Hangers and divisions | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Corp Wallet | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Renting Office | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Declairing War | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recruiting | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Alliance Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Creating Alliance | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Player Owned Station (POS) Deployment and Management == Server log indicates it is unwilling to "spawn" structure-type celestial objects (problems with Celestial object spawning system need to be resolved before this can be fixed) {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Deploying Station Structures | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Outpost Construction and Management == == EvE Server API == [[Category:Crucible]] fb1a381e42156a7a8a3dae6390010a971dfe33f0 Main Page/Developer Links 0 8 15 14 2021-04-03T11:36:06Z Admin 1 1 revision imported wikitext text/x-wiki '''Use these links to learn about development status and ongoing development work:''' * ACTIVE ** [[ Crucible Project Status]] | [[ Project Plan]] * RESOURCES ** [[ EVEmu Development]] ** [[ Getting Started]] ** [[ Development Team]] ** [[ Development Practices]] ** [[ Source Code]] ** [[ Testing EVEmu | Testing EVEmu ]] ** [[ Connect with EVEmu Community]] - IRC, Forums, Teamspeak * OLD BRANCHS [INACTIVE] ** [[ Incursion Project Status]] 9315e0efb6bb60f67e16f779ec8d257bad9b0a87 EVEmu Account Roles 0 11 21 20 2021-04-03T11:36:31Z Admin 1 1 revision imported wikitext text/x-wiki ==User== ==Game Master (GM)== ==Administrator== [[Category:Users Guide]] 57079abe8dfcb38f12459138eb64d7b1182dc0a2 EVEmu Connect 0 12 23 22 2021-04-03T11:36:40Z Admin 1 1 revision imported wikitext text/x-wiki ==IRC== ==Teamspeak== 758a79b47e57db21fce1f381eb6eeda7fd249e33 EVEmu Control Panel 0 13 25 24 2021-04-03T11:36:48Z Admin 1 1 revision imported wikitext text/x-wiki == EVEmu Database Tools == Since EVEmu is a custom server that interacts with a vast MySQL database, we need tools to work with that database whether the server is running or not. So far, we've got one Database tool and that's '''DB Editor'''. == EVEmu Control Panel == EVEmu Control Panel is a rather simple tool created using Visual C# and can be built and debugged using the FREE Microsoft Visual Studio 2010 Express which you can download here, just install Visual C# 2010 Express. Created by '''Hurracane''', <nowiki> </nowiki>this tool connects the the EVEmu SQL database and provides several ways to interact with and change data stored within the database. These major feature categories are discussed in detail below. Get EVEmu Control Panel Source from Github [https://www.github.com/evemuproject/evemu_control_panel here] === SQL Settings - The Connection to Your Database === ''Development Status:'' '''FULLY OPERATIONAL''' '''Before you do anything with EVEmu Control Panel, you must connect it to your EVEmu database.''' This is done using the '''SQL Settings''' tab, which is the default view when the program is executed. Supply the Host (domain name or IP address), the '''username''' and '''password''' for mysql to allow access to your EVEmu database, the port number used by mysql, and the exact name of the EVEmu database. Once this information is entered, click the Connect button. EVEmu Control Panel will then try to connect and if successful, the Connect button will be depressed and disabled. Across the menu bar past the Help menu, you will also see some greyed text declaring "Connected To DB". You may now proceed to make use of the other tabs to interact and change data in your EVEmu database's tables. === Account and Character Editor === ''Development Status:'' '''OPERATIONAL, BUT NOT COMPLETE''' '''TO BE IMPLEMENTED:''' * Edit a character's station, solar system, region, constellation, and current ship location info <nowiki>*</nowiki> Edit ban/kick info on any character and/or account <nowiki>*</nowiki> Export an account or a character or an account and one or more of its characters into an XML file <nowiki> </nowiki>* Info saved: all character info, clone grade, skills, certifications, attributes, augmentations, bio, wallet balance <nowiki> </nowiki>* NO items owned are saved <nowiki> </nowiki>* NO ID values from database are saved, these are auto-regenerated and auto-assigned upon import to another database <nowiki>*</nowiki> Import an account or a character or an account and one or more of its characters from an XML file This tab is the quickest way to add an account to your EVEmu server and edit existing accounts. Accounts are added by supplying a username, a password, and a user role. This tab also allow the editing of any characters in your EVEmu server. === Item and Ship Editor === ''Development Status:'' '''OPERATIONAL, HOWEVER, IT MIGHT LACK SOME USEFUL FEATURES - LET US KNOW YOUR IDEAS!''' Upon first connecting to your database and entering the '''Item/Ship Editor''' tab, you'll see lots of blank fields. Start with the '''Category''' drop-down control. Select an Item Category, such as Ships or Modules, there are quite a few. Now you'll see two new controls and buttons above the list of items now populated in the window below and a new button labeled '''Edit Item'''. The '''Search on typeName''' control and button will let you type some text to search by '''typeName''' field in the list below to either get the one item you're interested or filter down the view. You also filter down results by entering partial typeID or you can get directly to an item by just entering the full typeID number into the '''Search on typeID''' control. Either text box will search on hitting ENTER or clicking the button to its right. This whole tab works like an interactive GUI for the following tables: '''invCategories''', '''invGroups''', '''invTypes''', '''dgmTypeAttributes''', and '''dgmTypeEffects'''. It allows you to view attributes and effects and general information on any item in the game universe by first selecting its category then either searching on a typeID or an item's name to get to it. Once you've identified an item you want to view or edit, either double-click its line in the results window or you can select it and click the '''Edit Item''' button below the results window. Once inside the Edit/view window for a single item, there are three tabs: '''Item Info''', '''Item Attributes''', and '''Item Effects'''. General info is in the first tab, attributes associated with this item are in the second tab, and effects associated with this item, if any, are found in the third tab. Only a very experienced developer or someone who understands the deeper inner workings of the EVE game should ever be editing this information, but feel free to browse it and learn what it means. More information on Attributes and Effects can be found on the [[ Game Operation|Game Operation]] page along with other aspects of how the game works. === Insurance Editor === ''Development Status:'' '''NON-OPERATIONAL''' This tab allows some kind of editing of Insurance information, but it has niot been implemented yet. === Race and Bloodline Editor === ''Development Status:'' '''OPERATIONAL''' === Seed Market === ''Development Status:'' '''FULLY OPERATIONAL''' '''TO BE IMPLEMENTED:''' * Change system and region selection behavior such that the list of individually selected systems is appended with the list of all systems that are gathered from the list of selected regions. This tab simply allows one to seed the '''market_orders''' table with sell orders for whatever items, modules, ships, skills, etc that one wants to make available to players in the game. That is where the simplicity ends as this one tab has the ability to create such far-reaching queries that it has been known to seemingly crash mysql or at least make it run so long that people kill the mysql daemon and thus kill their whole evemu database causing them to re-create it from scratch. (Trust me, I've done it.) '''WARNING: Before you make large queries using this tool, it is STRONGLY recommended that you do a mysql dump of your entire table or back it up some other way. THEN, if you need to seed large swaths of the market such as an entire region (or more) full of every item, you should un-check 'Apply query to database?' checkbox and copy the queries<nowiki> </nowiki>into a text file which you would then run using the mysql command line interface.''' To seed the market, follow these steps, which have choices to be made by you based on what kinds of items you want to seed and where you want to seed them. Selections start at the far left of the window and progress toward the right side of the window. Keep that in mind when following these instructions. 1. Select zero or more races in the Races selection box on the far left. Zero selected races is used to seed items, skills, ships, etc. that have NO race, i.e. their raceID is set to NULL in the '''invtypes''' table. Select one or more races to seed items, skills, ships, etc. from those selected race(s). 2. You may select one or more individual solar systems with the System selection box '''AND / OR''' you may select one or more individual regions with the Region selection box. Do note that if you select one or more individual systems AND one or more regions the list of systems in the selected regions will replace the list of individually selected systems. 3. With solar systems and/or regions selected, now you can select item categories with the Category selection box. You may select one or more simultaneously. 4. For each category selected, all items in that category will be listed in the Group selection box on the far right. You may select one or more or all of the entries in this selection box. 5. There is a pair of radio buttons you may use to select whether the market is seeded wsith BUY or SELL orders. 5. Now, you may wish to simply commit the INSERT query directly to the EVEmu database, however, there are some other options to consider. If you do not want to commit the INSERT query to your database at this time, the Query window below is there for you to copy the query for later use. In this case, simply un-check the check box then click the Seed Market button. If you do with the query to be committed to the database, leave this box checked, then click the Seed Market button. 6. Additionally, you can clear the query window by clicking the Clear Query button. 7. Because market seeding quries can become quite large very quickly, there are some query 'thinning' options you may want to consider. a. Use the 0% to 100% slider control to tell EVEmu Control Panel to thin out the final system list to some percentage of the selected systems that the makret query will affect. b. Use the security level controls to seed the selected market items into those systems with security level at and above or at and below the security level you supply in the text box. The systems seeded with market items will be a subset of the individual systems you selected or those in the regions you selected. This works separately and in conjunction with the percentage slider control. === Seed Asteroid Belts === ''Development Status:'' '''FUNCTIONAL''' There is an issue that has come with further testing of this feature and that is all asteroids spawned using the control panel have an ore total of 1. Using GM commands in-game to spawn asteroids will spawn with a 'reasonable' quantity of ore. So this feature is effectively broken. '''TO BE IMPLEMENTED''' * Provide controls and lists to first select systems (with a percentage slider to thin out the system list) and belts in which to seed asteroids and then checkboxes to selectg which ores to seed, sliders for each ore to select relative concentrations and finally a list control that allows the choice of what kind of physical arrangement of the asteroids in space you want with a size control to determine the overall dimensions of the arrangement. * Ideas for physical arrangements: crescent, line, cross, sphere, random x/y/z, any others? === === cb7f6ad29d1ecdd10407365aa0070a67ddf773a9 EVEmu Developers Hub 0 14 27 26 2021-04-03T11:36:56Z Admin 1 1 revision imported wikitext text/x-wiki == EVEmu Development == So, you want to develop for the EVEmu project, eh? Well great! We NEED as many experienced C++ coders as we can get. This page is your starting point for learning the code base, connecting with the community <nowiki> </nowiki>of developers, getting access to tools and resources you'll need to help develop for the EVEmu project. People new to developing with EVEmu should start with the Getting Started section. == Getting started == * [[Getting Started]] * [[Development Team]] * [[Development Practices]] * [[Source Code]] 7d0b9e387a96c1d68562f6a1db00bb099e6e9902 EVEmu Development 0 15 29 28 2021-04-03T11:37:04Z Admin 1 1 revision imported wikitext text/x-wiki Server code lives at https://github.com/evemuproject/evemu_server. You will need a GitHub account to contribute. Redundant backup of all source code lives at https://gitlab.com/evemuproject (synced from GitHub hourly) 2960ab83aabf932b0641d262a852f96ba737277e Main Page/EVEmu Documentation Links 0 16 31 30 2021-04-03T11:37:12Z Admin 1 1 revision imported wikitext text/x-wiki '''Use these links if you want to learn how game features are implemented on EVEmu's server and learn about the backend framework that <nowiki> </nowiki>the server needs to do its job:''' * [[:Category:Users Guide|User's Guide]] * [[:Category:Game Operation|Game Operation]] * [[:Category:EVE Database|EVE Database]] * [[:Category:EVEmu API Server|EVEmu API Server]] * 15e9fc79c0734fd0d576f94596bb2355c8524d81 Getting Started 0 17 33 32 2021-04-03T11:37:51Z Admin 1 1 revision imported wikitext text/x-wiki == Getting Started == This page is for people who want to develop EVEmu, if you want to install EVEmu on your system, please go here. '''Testing:''' * Learn more about [[Testing EVEmu]] * [[Eve-tool]] '''Writing Code:''' * You need to know the C or C++ programming language to write code for EVEmu. Learn C/C++ at these locations: ** CPlusPlus.com [https://web.archive.org/web/20141003003235/http://www.cplusplus.com/] *CProgramming.com [https://web.archive.org/web/20141003003235/http://www.cprogramming.com/begin.html] *Source [[ Development Practices]] guide - check this out to see how we like contributing developers to format their code *How to create and use packets in EVEmu - Check this if you don't know how them work '''Packet formating:''' * EveMu [[xmlpktgen]] - How to format packets in XMLP and general information about xmlpktgen. == '''Learn about the EVEmu Codebase''' == * The [[The EVEmu Guide|EVEmu Guide]] - go here to learn about the EVEmu code base and how it's structured * The [[ EVEmu Database Guide|EVEmu Database Guide]] - go here to learn about how EVEmu uses and manages the back end MySQL database == '''Server development''' == * [[EVEmu Roadmap]] WIP Board - CONTAINS SHORT TERM/LONG TERM PROJECT PLAN - also has the list of active developers and what they are currently working on * EVEmu Project Tracking - this is the list of game features and their operational status in the most recent server builds == '''Installer Development''' == * EVEmu Installer == '''Database information''' == * Dumps distributed with EVEmu * Decoding the EVEmu MySQL Tables * Database Tools - information on tools used with the EVEmu database: [[ EVEmu Control Panel]] == '''Live information''' == 096e09f5c81fa1eb2c6d7c2e6f88185c45acbd52 List of Admin and GM Commands 0 18 35 34 2021-04-03T11:38:15Z Admin 1 1 revision imported wikitext text/x-wiki ==Game Master== {| |/ban<nowiki> </nowiki> (charName) |bans player's account from the server |- |/chatban (characterID) |bans character from channel |- |/create (itemID) [count] |Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- |/dogma (attribute) |change item attribute value |- |/entity (entityID) |unknown |- |/fit (itemID) |Fits selected item to active ship. |- |/getattr (itemID) (attributeID) |Retrieves attribute value. |- |/giveallskills (characterID) |gives all skills to character |- |/giveisk (entityID) (amount) |Give the specified amount of cash to the specified character. 0=self. |- |/giveskill (itemID) |gives skills to fit item. |- |/giveskills (itemID) |gives skills to character. |- |/goto (x) (y) (z) |Jump to the specified position in space. |- |/heal (entityID) |heal the character with the entityID |- |/kick (charName) |kicks [charName] from the server |- |/location |Gives you back your current location in space. |- |/online (entityID) |online all modules on the ship of the entityID. entityID=me=>online my modules |- |/pop (type) (key) (value) |Send an OnRemoteMessage. |- |/repairmodules (entityID) (itemID) |repair the modules of the character with the entityID |- |/search (text) |Search for items matching the specified query |- |/setattr (itemID) (attributeID) (value) |Sets attributeID of itemID to value. |- |/setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) |Change blueprint's attributes. |- |/spawn (typeID) |Spawn an NPC with the specified type. |- |/state |Sends DoDestinyUpdate SetState. |- |/syncloc |Synchonizes your location in client with location on server. |- |<nowiki>/tr [<entityID>|me] <locationID></nowiki> |Translocate the specified person to the specified entity |- |/translocate <entityID> <locationID> |Translocate the specified person to the specified entity |- |/unload (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unspawn (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unban (charName) |removes ban on player's account |- |/whois (characterName) |returns information on character |} ==Admin== ''To be written'' [[Category:User Guide]] 7a476698c0d238e91f9542621911981ab78bcae8 MySQL Setup 0 19 37 36 2021-04-03T11:38:24Z Admin 1 1 revision imported wikitext text/x-wiki # Linux Database configuration on Debian Linux (Jessie|Current Stable) Requirements * mysql-server-5.5 Install requirements from apt-get $ apt-get install mysql-server-5.5 Set MySQL Configuration options: $ nano /etc/mysql/my.cnf # Inside the [mysqld] section set settings per below * max_allowed_packet = 1000M * key_buffer = 256M # Inside [mysqldump] * max_allowed_packet = 1000M $ systemctl restart mysql Setup: $ git clone https://github.com/evemuproject/evemu_server.git evemu $ cd evemu $ cd sql $ wget http://eve.alasiya.net/files/cruc/cru16-mysql5-v1.sql.bz2 -O - | bunzip2 > cru16-mysql5-v1.sql $ cd utils $ bash merge-ofic-updates.sh Set MySQL Permissions: $ mysql -u root -p > CREATE USER 'evemu'@'%' IDENTIFIED BY 'evemu'; > GRANT USAGE ON *.* TO 'evemu'@'%' IDENTIFIED BY 'evemu' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; > CREATE DATABASE IF NOT EXISTS `evemu`; > GRANT ALL PRIVILEGES ON `evemu`.* TO 'evemu'@'%'; > EXIT; Change to the sql/ directory and execute: $ mysql -u evemu -p > use evemu; > source cru16-mysql5-v1.sql; > source ofic-updates.sql; > source evemu_static-dump.sql; > source evemu_dynamic-dump.sql; > source prime_db.sql; > source liveupdates.sql; > exit; ** TODO: Validate the PI tables before adding to official documentation. Check that the AUTO_INC value in the entity table is set to 140000000 $ mysql -u evemu -p > use evemu; > SHOW CREATE TABLE entity; > exit; Add your account into the DB $ mysql -u evemu -p > INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0); > exit; a5e97bc120f074ea01c54770e68f1e5b05c77118 Project Plan 0 20 39 38 2021-04-03T11:38:31Z Admin 1 1 revision imported wikitext text/x-wiki Write project plan below if you're the dev in charge or someone like them 0d11d7e4445c5c52e393ff34478052982a8840f1 Quick Start Guide 0 21 41 40 2021-04-03T11:38:39Z Admin 1 1 revision imported wikitext text/x-wiki == '''Client configuration''' == '''Get the Client [http://downloads.yzs.me/evemu/ >>> DOWNLOAD HERE <<<]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://github.com/bluepatcher/blue_patcher >>> DOWNLOAD HERE <<<] '''and follow the instructions in README.md. Your client is now ready to run. <div style="background: rgb(38, 52, 62) none repeat scroll 0% 0%; padding: 5px;">'''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.</div> == '''Server configuration (From source)''' == <div style="background: rgb(38, 52, 62) none repeat scroll 0% 0%; padding: 5px;"> '''NOTE:''' * ''%serverRoot%'' is where the server is installed. * ''%devRoot%'' is where the development files are located. * These may be the same location but that is not necessary </div> '''SERVER SETUP:''' # Create the directories '''%serverRoot%/etc/''' and '''%serverRoot%/log/''' # Copy the '''%devRoot%/evemu_server/utils/devtools.raw''' file to '''%serverRoot%/etc/''' # Open a command prompt and go to the directory '''%devRoot%/evemu_server/sql/utils/''' # Run the script merge-ofic-updates.sh if your running Linux or merge-ofic-updates.bat on windows '''MYSQL SETUP:''' Get a copy of the crucible static data dump [http://eve.alasiya.net/files/cruc/cru16-mysql5-v1.sql.bz2 cru16-mysql5-v1.sql.bz2] and extract the file '''cru16-mysql5-v1.sql''' to '''%serverRoot%'''. Then open a mysql client and execute the following commands in this order:  create database evemu; use evemu; source %serverRoot%/cru16-mysql5-v1.sql; source %devRoot%/evemu_server/sql/evemu_dynamic-dump.sql; source %devRoot%/evemu_server/sql/evemu_static-dump.sql; source %devRoot%/evemu_server/sql/ofic-updates.sql; source %devRoot%/evemu_server/sql/prime_db.sql; source %devRoot%/evemu_server/sql/liveupdates.sql; source %devRoot%/evemu_server/sql/market_npc.sql; ALTER TABLE srvAccountApi AUTO_INCREMENT=1000000; ALTER TABLE srvAccount AUTO_INCREMENT=1; INSERT INTO srvAccount (accountID, accountName, role, password, online, banned) VALUES(NULL, 'YOUR_ACCOUNT_NAME', 5003499186008621056, 'YOUR_PASSWORD', 0, 0); GRANT ALL ON evemu.* TO EVEMU_USER@localhost IDENTIFIED BY 'EVEMU_PASSWORD'; In the last two lines replace '''YOUR_ACCOUNT_NAME''' with the account name you want to log into the game with, and '''YOUR_PASSWORD''' with the password you will use. Change '''EVEMU_USER''' to the username you want the server to log into you database with, and '''EVEMU_PASSWORD''' to the password the server should use. '''SERVER CONFIGURATION FILE''' Create the server config file '''%serverRoot%/etc/eve-server.xml. '''Make sure to set the proper database username and password. '''FINAL STEP - SERVER COMPILATION''' sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 sudo apt-get install libmysqlclient-dev == Test and Report! == Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.<br />You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.<br />[http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 7ea367630487a239e5889166d1e900e176bc9e0b Recent Project Activity 0 22 43 42 2021-04-03T11:38:48Z Admin 1 1 revision imported wikitext text/x-wiki [[File:Placeholder|video|right|300px]] [[File:Placeholder|right|300px]] Insert important activity here ==Insert Version Here== Insert version updates here ==Insert Version Here== Insert version updates here [[Category:Crucible]] b16a82bdc40bf4c5d1fcbd2036a1366fad163de6 Main Page/Server Projects Links 0 23 45 44 2021-04-03T11:38:58Z Admin 1 1 revision imported wikitext text/x-wiki '''Use these links if you want to build the server:''' * ACTIVE BRANCHES (In development phase) ** '''[[:Category:Crucible|Crucible]]''' cad895ecef2ac7947cced6702cc3b826b4c98490 Source Code 0 24 47 46 2021-04-03T11:39:05Z Admin 1 1 revision imported wikitext text/x-wiki == Main Repositories == === Crucible (The current development branch) === * https://github.com/evemuproject/evemu_server [https://github.com/evemuproject/evemu_server] === EVEmu Control Panel V2 === * https://github.com/evemuproject/evemu_control_panel_v2.0 [https://github.com/evemuproject/evemu_control_panel_v2.0] == Third party repositories == A list of '''community-driven repositories''' Crucible (The current development branch) (Active as of 06.2016) * https://github.com/eve-moo/evemu_server [https://github.com/eve-moo/evemu_server] Complete backup of all critical GitHub repos (synced from GitHub hourly) * https://gitlab.com/evemuproject 87eccbdab2e72f0f900204f6b4c07a0fbbb019d1 Testing EVEmu 0 25 49 48 2021-04-03T11:39:13Z Admin 1 1 revision imported wikitext text/x-wiki If you don't want to write code, you can test EVEmu! Just follow directions above under EVEmu Crucible Server on the wiki home page to either build from source or get the nightly builds for your machine, modify the client, fire it up and start trying things. Experience with EVE live is very helpful since it will provide you with a reference for how in-game features are supposed to work. ==How to test== * Install EVEmu Server (TODO: Add instructions) * Install Client (TODO: Find binaries) * Connect and use all features (TODO: Specify features) 223ece6a41682cee187f8f270f71238b415ae9a5 Wormholes 0 26 51 50 2021-04-03T11:39:21Z Admin 1 1 revision imported wikitext text/x-wiki Wormholes are rifts in space that link 2 different star systems. They are similar to stargates in that ther allow ships to move between star systems but unlike [[stargates]] thay are non permanent. Their life is rather short since they collapse after a set time or after a set amount of ships have passed through them. ==Discovering wormholes== (WIP) ==Wormhole destinations== (WIP) ==Chat in wormholes== (WIP) ==Identification== (WIP) ==Size and restrictions== (WIP) ==Project status== (WIP) 66b7a1d3aab98ab9991d0d8df1f8527028f7b8fa Field Name 0 28 53 2021-04-03T14:09:51Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki ```Old Wiki:Accounts``` __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="Accounts" class="mw-headline"> Accounts </span> == Description of the Accounts table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'accountID' | int(10) unsigned | NOT NULL | PRIMARY |- | 'accountName' | varchar(43) | NOT NULL | |- | 'password' | varchar(43) | NOT NULL | |- | 'hash' | tinyblob | NULL | |- | 'role' | bigint(20) unsigned | NOT NULL | |- | 'online' | tinyint(1) | NOT NULL | |- | 'banned' | tinyint(1) | NOT NULL | |- | 'logonCount' | int(10) unsigned | NOT NULL | |- | 'lastLogin' | timestamp | NULL | |} '''Description of the fields''' <br /> ''''accountID'''' The account number, raises incrementally as more accounts are added. Several tables refer to this. <br /> ''''accountName'''' The login name for the account. Must be unique. <br /> ''''password'''' The password given to this account. This field should be blank after login if the password is put in manually. <br /> ''''hash'''' The password scrambled. <br /> ''''role'''' The account privileges and commands it has access to. For more information go here [[EVEmu_Account_Roles.html|here]]. <br /> ''''online'''' Whether the account is connected to the server. 0 is offline, a value of 1 is online. <br /> ''''banned'''' Whether the account is banned to the server. 0 is not banned, a value of 1 is banned. <br /> ''''logonCount'''' The amount of times this account has connected to the server. <br /> ''''lastLogin'''' The last time the account logged in. <br /> -- When starting your server you will need to create a new account. <span class="tex2jax_ignore"></span> <pre>INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0);</pre> </div> 498de08a619b7666b9b4139d0ecaa3873e14261a Old Wiki:Accounts 0 29 54 2021-04-03T14:11:55Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="Accounts" class="mw-headline"> Accounts </span> == Description of the Accounts table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'accountID' | int(10) unsigned | NOT NULL | PRIMARY |- | 'accountName' | varchar(43) | NOT NULL | |- | 'password' | varchar(43) | NOT NULL | |- | 'hash' | tinyblob | NULL | |- | 'role' | bigint(20) unsigned | NOT NULL | |- | 'online' | tinyint(1) | NOT NULL | |- | 'banned' | tinyint(1) | NOT NULL | |- | 'logonCount' | int(10) unsigned | NOT NULL | |- | 'lastLogin' | timestamp | NULL | |} '''Description of the fields''' <br /> ''''accountID'''' The account number, raises incrementally as more accounts are added. Several tables refer to this. <br /> ''''accountName'''' The login name for the account. Must be unique. <br /> ''''password'''' The password given to this account. This field should be blank after login if the password is put in manually. <br /> ''''hash'''' The password scrambled. <br /> ''''role'''' The account privileges and commands it has access to. For more information go here [[EVEmu_Account_Roles.html|here]]. <br /> ''''online'''' Whether the account is connected to the server. 0 is offline, a value of 1 is online. <br /> ''''banned'''' Whether the account is banned to the server. 0 is not banned, a value of 1 is banned. <br /> ''''logonCount'''' The amount of times this account has connected to the server. <br /> ''''lastLogin'''' The last time the account logged in. <br /> -- When starting your server you will need to create a new account. <span class="tex2jax_ignore"></span> <pre>INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0);</pre> </div> ff12fe81d0abf91584902f0d0191abcc0da2b2e9 Old Wiki 0 30 55 2021-04-03T14:13:54Z Admin 1 Created page with "{{Special:Prefixindex/Old_Wiki:}}" wikitext text/x-wiki {{Special:Prefixindex/Old_Wiki:}} 2ab75a13d9952c2d58661d275e646d8611344c93 Old Wiki:Angels 0 31 56 2021-04-03T14:15:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> This page is for the NPC pirate group Angels. It will deal with spawns and loot. <br /> == <span id="Angels_loot" class="mw-headline"> Angels loot </span> == Angels (Tech 1, Named and Faction - Domination) - Halo Implants 100MN Afterburner 100MN Microwarpdrive 10MN Afterburner 10MN Microwarpfrive 1200mm Artillery 125mm Autocannon 1400 Howitzer Artillery 150mm Autocannon 1MN Afterburner 1MN Microwarpdrive 200mm Autocannon 200mm Autocannon 250mm Artillery 280mm Howitzer Artilley 425mm Autocannon 650mm Artillery 720mm Howitzer Artillery 800mm Repeating Artillery Adaptive Nano Plating Armor EM Hardner Armor Explosive Hardner Armor Kinetic Hardner Armor Thermic Hardner Assault Missile Launcher Ballistic Control System Ballistic Deflection Field Carbonized Lead L, M, S Cruise Missile Launcher Depleted Uranium L, M, S Dual 180mm Autocannon Dual 425mm Autocannon Dual 650mm Repeating Artillery EMP L, M, S Explosion dampening field Explosion dampening amplifier Fusion L, M, S Gyrostabalizer Heat Dissipation Amplifier Heat Dissipation Field Heavy Assault Missile Launcher Heavy Missile Launcher Invulnerability Field Kinetic Deflection Amplifier Large Armor Repairer Large Proton Smartbomb (Exp) Large Shield Booster Magnetic Plating Magnetic Scattering Amplifier Medium Armor Repairer Medium Proton Smartbomb Medium Shield Booster Nanofiber Structure Luclear L, M, S Overdrive Injector Phased Plasma L, M, S Photon Scattering Field Proton L, M, S Reactive Plating Reflective Plating Rocket Launcher Shield Boost Amplifier Siege Missile Launcher Small Armor Repairer Small Proton Smartbomb Small Shield Booster Standard Missile Launcher Stasis Webifier Thermic Plating Titanium Sabot L, M, S Tracking Enhancer Warp Disruptor Warp Scrambler X-Large Shield Booster </div> d9b3fd1c5331b1c302d6e18c130db9abf9efadbd Old Wiki:Apocrypha FAQ 0 32 57 2021-04-03T14:15:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="Known_Issues" class="mw-headline"> Known Issues </span> = </div> f6a8806815ffe2e4ec747f07bedb5d10b51184ba Old Wiki:Blood Raiders 0 33 58 2021-04-03T14:15:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="Blood_Raider_Drops" class="mw-headline">Blood Raider Drops</span> == Blood Raiders - Tech 1, Named and faction (Dark Blood) - Slave Implants (??? - confirm?) <br /> Adaptive Nano Plating Armor EM Hardeners Armor Exp Hardeners Armor Kinetic Hardeners Armor Thermic Hardeners Cap rechargers Capacitor Power Relays Dual Heavy Beam Lasers Dual Heavy Pulse Lasers Dual Light Beam Lasers Dual Light Pulse Lasers Energized Adaptive nano membranes Energized magnetic membranes Energized Reactive Membranes Energized Thermic Membranes Focused Medium Beam Lasers Focused Medium Pulse Lasers Gamma L, M S Gatling Pulse Laser Heat Sink Heavy Beam Laser Heavy Capacitor Booster Heavy Energy Neuts Heavy Nos Heavy Pulse Laser Infrared L, M, S Large Armor Repairer EMP Smartbomb Magnetic Plating Medium Armor Repairer Medium Beam Laser Medium Cap Booster Medium EMP Smartbomb Medium Energy Neut Medium Nos Medium Pulse Laser Mega Beam Laser Mega Pulse Laser Microwave L, M, S Multifreq L, M, S Power Diagnostic System Quad Beam Laser Radio L, M, S Reactive Plating Reactor Control Unit Reflective Plating Small Armor Repairer Small Cap Booster Small EMP Smartbomb Small Energy Neut Small Nos Standard L, M, S Stasis Web Tachyon Beam Lasser Thermic Plating Ultra Boilet L, M S Warp Disruptor Warp Scrambler Xray L, M, S </div> f60e34439c4adc530fa39842f79925a85d7e8ec1 Old Wiki:Build Database 0 34 59 2021-04-03T14:15:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Database_Installation_Guide|<span class="tocnumber">1</span> <span class="toctext">Database Installation Guide</span>]] ** [[#Required_Software|<span class="tocnumber">1.1</span> <span class="toctext">Required Software</span>]] ** [[#Database_Setup|<span class="tocnumber">1.2</span> <span class="toctext">Database Setup</span>]] ** [[#Data_Import|<span class="tocnumber">1.3</span> <span class="toctext">Data Import</span>]] ** [[#Adding_an_Account|<span class="tocnumber">1.4</span> <span class="toctext">Adding an Account</span>]] ** [[#Using_the_Experimental_Branch|<span class="tocnumber">1.5</span> <span class="toctext">Using the Experimental Branch</span>]] |} = <span id="Database_Installation_Guide" class="mw-headline"> Database Installation Guide </span> = '''NOTE:''' This guide assumes directory structure created in guide. '''WARNING:''' Please note that this guide may be outdated. You can always find the most recent version in sql/README. == <span id="Required_Software" class="mw-headline"> Required Software </span> == <pre>* MySQL Server 5.1 (I would recommend downloading the Windows Essentials installer, as it is all that is needed) * You could also install XAMPP for whatever OS you're using. This is a complete webserver with apache, PHP, mysql, and other stuff. * apo15 Official DB dump</pre> == <span id="Database_Setup" class="mw-headline"> Database Setup </span> == Download and install the latest stable version of MySQL 5.1 from the link above. Extract the dowloaded database dump to directory ''C:\evemu\source\sql''. Browse into ''C:\evemu\source\sql\utils''. <pre>__If you are on Windows:__:: In the /sql/utils/ directory, Execute merge-evemu-updates.bat and merge-ofic-updates.bat. __If you are on Linux:__:: In the /sql/utils/ directory, Execute merge-evemu-updates.sh and merge-ofic-updates.sh.</pre> This should create new files called ''evemu-updates.sql'' and ''ofic-updates.sql'' in parent directory ''sql''. Now, you'll have these .sql files in the '''/sql''' directory: <pre>* apo15-mysql5-v1.sql (**This is the biggest sql and takes the longest to write into the database, over 200 MB import**) * evemu_dynamic-dump.sql * evemu_static-dump.sql * evemu-updates.sql * ofic-updates.sql * prime_db.sql</pre> <br /> == <span id="Data_Import" class="mw-headline"> Data Import </span> == '''IMPORTANT:''' Paths should use / instead of \ Click ''Start'' -&gt; ''All Programs'' -&gt; ''MySQL'' -&gt; ''MySQL Server 5.1'' then ''MySQL Command Line Client''. The MySQL Command Line Client will open, you will need to enter your MySQL database root password. You will now need to create the EVEmu database, to do this type: * create database evemu; Now hit enter, it should tell you that was successful by saying: * Query OK, 1 row affected. <br /> After each query is completed it will display ''mysql&gt;'' - at this point simply run the next one. Now to import the actual data... to do this you'll need to use the following queries (each line is a separate query - don't execute them all at once!): * use evemu; * source C:/evemu/source/sql/apo15-mysql5-v1.sql; * source C:/evemu/source/sql/ofic-updates.sql; * source C:/evemu/source/sql/evemu_static-dump.sql; * source C:/evemu/source/sql/evemu_dynamic-dump.sql; * source C:/evemu/source/sql/evemu-updates.sql; * source C:/evemu/source/sql/prime_db.sql; <br /> You can put the entire contents of the above SQL code section in its own .sql file and run that on your database. Congratulations, you now have the database setup! Now you just need to add a user account. == <span id="Adding_an_Account" class="mw-headline"> Adding an Account </span> == This is really simple... just type the following: <br /> * INSERT INTO account (accountID, accountName, role, password, online) VALUES(NULL, 'your_account_name', 4294967231, PASSWORD('your_password'), 0); <br /> Simply make sure to replace '''your_account_name''' and '''your_password''' with what you want your username and password to be! == <span id="Using_the_Experimental_Branch" class="mw-headline"> Using the Experimental Branch </span> == <pre> YOU DO NOT HAVE TO DO THIS IF YOU USE REV 1042 OR HIGHER!!!! </pre> The experimental branch currently has the ability to ban accounts, and therefore requires the following extra sql code be executed: <br /> * ALTER TABLE `account` ADD COLUMN `banned` TINYINT(1) DEFAULT '0' AFTER `online`; <br /> The experimental branch can make use of bookmarks, and therefore requires the following extra sql code be executed: <br /> * ALTER TABLE bookmarks MODIFY created BIGINT; </div> b45383a657dfc739fde32b750225f95c1d851346 Old Wiki:Build Server Source 0 35 60 2021-04-03T14:15:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Getting_The_Source_Code|<span class="tocnumber">1</span> <span class="toctext">Getting The Source Code</span>]] ** [[#Prerequisities|<span class="tocnumber">1.1</span> <span class="toctext">Prerequisities</span>]] ** [[#Downloading_the_source|<span class="tocnumber">1.2</span> <span class="toctext">Downloading the source</span>]] *** [[#Windows|<span class="tocnumber">1.2.1</span> <span class="toctext">Windows</span>]] *** [[#Linux|<span class="tocnumber">1.2.2</span> <span class="toctext">Linux</span>]] * [[#Compiling_with_CMake|<span class="tocnumber">2</span> <span class="toctext">Compiling with CMake</span>]] ** [[#Foreword|<span class="tocnumber">2.1</span> <span class="toctext">Foreword</span>]] ** [[#Getting_the_dependencies|<span class="tocnumber">2.2</span> <span class="toctext">Getting the dependencies</span>]] *** [[#Windows_2|<span class="tocnumber">2.2.1</span> <span class="toctext">Windows</span>]] *** [[#Linux_2|<span class="tocnumber">2.2.2</span> <span class="toctext">Linux</span>]] ** [[#Running_CMake|<span class="tocnumber">2.3</span> <span class="toctext">Running CMake</span>]] *** [[#Windows_3|<span class="tocnumber">2.3.1</span> <span class="toctext">Windows</span>]] *** [[#Linux_3|<span class="tocnumber">2.3.2</span> <span class="toctext">Linux</span>]] ** [[#Compilation|<span class="tocnumber">2.4</span> <span class="toctext">Compilation</span>]] *** [[#Windows_4|<span class="tocnumber">2.4.1</span> <span class="toctext">Windows</span>]] *** [[#Linux_4|<span class="tocnumber">2.4.2</span> <span class="toctext">Linux</span>]] ** [[#Debugging|<span class="tocnumber">2.5</span> <span class="toctext">Debugging</span>]] *** [[#Windows_5|<span class="tocnumber">2.5.1</span> <span class="toctext">Windows</span>]] *** [[#Linux_5|<span class="tocnumber">2.5.2</span> <span class="toctext">Linux</span>]] |} = <span id="Getting_The_Source_Code" class="mw-headline"> Getting The Source Code </span> = == <span id="Prerequisities" class="mw-headline"> Prerequisities </span> == You need a Git client in order to download the source. Windows users can download [http://www.syntevo.com/smartgit/download.html SmartGit], Linux users need to install the respective package (usually ''git''). If you prefer to use Git via CMD, here is a good tutorial on how to do it. [http://help.github.com/linux-set-up-git/ Git-Linux] [http://help.github.com/win-set-up-git/ Git-Windows] == <span id="Downloading_the_source" class="mw-headline"> Downloading the source </span> == '''NOTE:''' Use Git to pull down the source, I would recommend if you want to develop, create a Github account. Then you can fork from the main branch and develop from there. === <span id="Windows" class="mw-headline"> Windows </span> === Please load Smartgit and follow the on screen instructions to pull down the source from github. === <span id="Linux" class="mw-headline"> Linux </span> === You can use the gui from Linux or CMD Type following to the terminal: <br /> ----- * mkdir ~/path/to/evemu/source * cd ~/path/to/evemu/source Changes the current working directory to your newly created directory * git initSets up the necessary Git files * Initialized empty Git repository in /path/to/evemu/source/.git/ * touch README * git clone https://github.com/evemuproject/evemu_apocrypha.git ----- = <span id="Compiling_with_CMake" class="mw-headline"> Compiling with CMake </span> = == <span id="Foreword" class="mw-headline"> Foreword </span> == EVEmu can be built using [http://www.cmake.org/ CMake]: a tool designed to ease the whole process of compiling on various platforms. You can find further information about it on the homepage; here we'll concentrate only to how to use it to build EVEmu. == <span id="Getting_the_dependencies" class="mw-headline"> Getting the dependencies </span> == Of course you'll need current EVEmu source. If you haven't downloaded it yet, [wiki:apocrypha/GettingTheSourceCode do it now]. === <span id="Windows_2" class="mw-headline"> Windows </span> === * [http://www.cmake.org/cmake/resources/software.html CMake] - '''Please use [http://www.cmake.org/files/v2.8/ v2.8.2 found in older releases here], as we have had reports that newer versions are causing problems''' * [http://code.google.com/p/msysgit/downloads/list Git For Windows CMD] * [http://www.microsoft.com/express/download/ Visual Studio Express 2010] (Download the Offline install DVD) * You may use Visual Studio 2008 as well if you dont have or dont want to use Visual Studio 2010 * [http://www.zlib.net/ zlib source code] * [http://downloads.mysql.com/archives/mysql-5.1/mysql-noinstall-5.1.53-win32.zip MySQL noinstall package] Please use mysql 5.1 to build, you can use 5.5 to run the actual db, but not to build. (MySQL site was modified so the link was updated) '''Install''' : ''CMake'', ''Git'' and ''Visual Studio''.[http://wiki.evemu.dev/index.php?title=BR&action=edit&redlink=1 BR] '''Extract''' : ''zlib'', ''mysql-noinstall'' somewhere convenient, but not in your git repository.[http://wiki.evemu.dev/index.php?title=BR&action=edit&redlink=1 BR] '''Move''' : Content of extracted files to ''C:\evemu\zlib'' and ''C:\evemu\mysql'' respectably.[http://wiki.evemu.dev/index.php?title=BR&action=edit&redlink=1 BR] '''WARNING''' : Don't move ''zlib-1.2.5'' into ''C:\evemu\zlib''. Only the '''contents''' of ''zlib-1.2.5''. Same with MySql. === <span id="Linux_2" class="mw-headline"> Linux </span> === <pre>* cmake * git * make * g++ * zlib, zlib-dev * libmysqlclient, libmysqlclient-dev</pre> Just search your distro's repository for similarly named packages and install them. == <span id="Running_CMake" class="mw-headline"> Running CMake </span> == '''WARNING: Do NOT use SPACES in any part of your path to the EVEmu source code or any of its dependencies (libraries like boost, mysql, zlib, etc). Any spaces in the path will cause MASSIVE errors when you go to compile the software in your compiler. YOU HAVE BEEN WARNED!!!''' === <span id="Windows_3" class="mw-headline"> Windows </span> === Create directory ''C:\evemu\build''. Go to the directory where you have installed CMake, there should be subdirectory ''bin''. Go in there and run ''cmake-gui.exe''. In the new window in the upper part click ''Browse source'' and pick ''C:\evemu\source'', then click ''Browse build'' and pick ''C:\evemu\build''. After that click ''Configure'' in the lower part. Another dialog pops up, asking you to choose compilers and a generator. Choose ''Visual Studio 9 2008'' and ''Use default native compilers'' and press ''Finish''. CMake starts configuring your build, but it'll fail, because you haven't set several CMake variables yet. For each of the rows below, click the button ''Add Entry'' in the upper part, fill in the corresponding editboxes and click ''OK'': <pre>* Name: CMAKE_SYSTEM_INCLUDE_PATH Type: PATH Value: C:\evemu\mysql\include;C:\evemu\zlib * Name: CMAKE_SYSTEM_LIBRARY_PATH Type: PATH Value: C:\evemu\mysql\lib\opt</pre> Now click ''Configure'' again and it should be fine. After configuration is done, click ''Generate'' and close the window. === <span id="Linux_3" class="mw-headline"> Linux </span> === Type: * mkdir path/to/evemu/build * cd path/to/evemu/build * cmake path/to/evemu/source <br /> If you want to configure the build manually, add ''-i'' flag: * cmake -i path/to/evemu/source <br /> This is particularly useful e.g. when you want to build a ''Debug'' binary. == <span id="Compilation" class="mw-headline"> Compilation </span> == === <span id="Windows_4" class="mw-headline"> Windows </span> === Browse to ''C:\evemu\build'', there should be file ''evemu.sln''. Double-click it and Visual Studio opens up. You can set it to two modes, 'Debug' or 'Release'. Either work, but the size of the exe file is bigger on debug but slightly more stable. In the left part, right-click ''Solution evemu'' and click ''Build solution''. Compilation should start. === <span id="Linux_4" class="mw-headline"> Linux </span> === Type: * cd path/to/evemu/build * make <br /> If you want to make use of a multicore CPU, specify number of cores with ''-j'' option. For example, if you had quad-core CPU, you'd type: * make -j4 == <span id="Debugging" class="mw-headline"> Debugging </span> == These instructions will help you surmount the common problems when setting up your system to debug EVEmu server code. === <span id="Windows_5" class="mw-headline"> Windows </span> === <pre>1. Open the evemu project in Visual Studio. 2. To do FULL Rebuilds of entire project, select ALL_BUILD at the top of the list in Solution Explorer, then either hit Ctrl+Alt+F7 key or click Build -&gt; Rebuild Solution from the menu bar. 3. To compile sub-projects by themselves, such as eve-server, then select that sub-project in Solution Explorer, then hit F7 for a Build or Ctrl+Alt+F7 for a Rebuild or access either from the Build menu on the menu bar. 4. To set the project for Debugging, find the drop down box on the toolbar that is either going to have Release or Debug inside. If it says Debug you are good to go, just to a FULL rebuild of the whole project. If it says Release, click on it then select Debug, then do a FULL rebuild of the whole project.</pre> <pre>5. To RUN eve-server after you have built it under Debug, follow these steps: * Right-click on eve-server in the Solution Explorer and select Properties * Expand Configuration Properties and click Debugging * Put the text Debug in the field called Working Directory, then click the OK button * Now, navigate to your server project source root directory, then drill down to this sub-folder: build\src\eve-server * Make a new folder called etc and put your eve-server.xml file in that new etc folder * Back in Visual Studio, right click on eve-server again in the Solution Explorer and select Set as StartUp Project, the eve-server tree label will now be bold to indicate this change * You can now hit F5 to execute the debug build .exe or click Debug -&gt; Start Debugging from the menu bar.</pre> === <span id="Linux_5" class="mw-headline"> Linux </span> === to be written </div> 9d533a6e8c8e2d6f64f7f2c01f603763fecfdb40 Old Wiki:Category Apocrypha 0 36 61 2021-04-03T14:15:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> '''This page is under development.''' {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Using_Apocrypha|<span class="tocnumber">1</span> <span class="toctext">Using Apocrypha</span>]] ** [[#Apocrypha_FAQ|<span class="tocnumber">1.1</span> <span class="toctext">Apocrypha FAQ</span>]] ** [[#Build_Server_Source|<span class="tocnumber">1.2</span> <span class="toctext">Build Server Source</span>]] ** [[#Build_Database|<span class="tocnumber">1.3</span> <span class="toctext">Build Database</span>]] ** [[#Configuring_and_Running_the_Server|<span class="tocnumber">1.4</span> <span class="toctext">Configuring and Running the Server</span>]] ** [[#Maintaining_the_Server_and_Database|<span class="tocnumber">1.5</span> <span class="toctext">Maintaining the Server and Database</span>]] * [[#Apocrypha_Development|<span class="tocnumber">2</span> <span class="toctext">Apocrypha Development</span>]] ** [[#Project_Tracking|<span class="tocnumber">2.1</span> <span class="toctext">Project Tracking</span>]] ** [[#Feature_List|<span class="tocnumber">2.2</span> <span class="toctext">Feature List</span>]] |} = <span id="Using_Apocrypha" class="mw-headline"> Using Apocrypha </span> = == <span id="Apocrypha_FAQ" class="mw-headline"> [[Apocrypha_FAQ.html|Apocrypha FAQ]] </span> == == <span id="Build_Server_Source" class="mw-headline"> [[Build_Server_Source.html|Build Server Source]] </span> == == <span id="Build_Database" class="mw-headline"> [[Build_Database.html|Build Database]] </span> == == <span id="Configuring_and_Running_the_Server" class="mw-headline"> [[Configuring_and_Running_the_Server.html|Configuring and Running the Server]] </span> == == <span id="Maintaining_the_Server_and_Database" class="mw-headline"> Maintaining the Server and Database </span> == = <span id="Apocrypha_Development" class="mw-headline"> Apocrypha Development </span> = == <span id="Project_Tracking" class="mw-headline"> Project Tracking </span> == [[Server_Status_(Apocrypha).html|Server Status (Apocrypha)]] == <span id="Feature_List" class="mw-headline"> Feature List </span> == <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Apocrypha&quot; == The following 2 pages are in this category, out of 2 total. <div class="mw-content-ltr" lang="en" dir="ltr"> === A === * [[Apocrypha_FAQ.html|Apocrypha FAQ]] === S === * [[Server_Status_(Apocrypha).html|Server Status (Apocrypha)]] </div> </div> </div> </div> 3b08af9bde55f5f10724f64823536b7ff15972cf Old Wiki:Category Crucible 0 37 62 2021-04-03T14:16:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> '''The EVEmu project is a developing EVE Online server suite and as yet does not support most features offered in the game.''' <br /> '''EVEmu Crucible is compatible with EVE Crucible Client v1.6.5 build 360229.''' = <span id="DISCLAIMER" class="mw-headline"> DISCLAIMER </span> = EVEmu is an educational project. This means, our primary interest is to learn and teach us and our users more about C++ project development in a large scale. Our software is not intended for running public servers, and we do not support that. We are not responsible for what others do with the source code downloaded from this project. [[New_Users_Guide.html|For users who are new]] to build servers and would like some background information on what they are doing for learning please go [[New_Users_Guide.html|here]]'''.''' There is a video guide [http://www.youtube.com/watch?feature=player_embedded&v=6-1WyPIbptw here]. Evemu did NOT make this guide and it is different to the instructions listed below. If you are having [[Server_Setup_Issues.html|Server Setup Issues]] look here. = <span id="Quick_Navigation" class="mw-headline"> Quick Navigation </span> = This is a large page with lots of detail for building and setting up the server, building the server's database, and developer-only related information. Use this Quick Navigation panel to get where you want to go. {| ! Client and Tools ! Build Server ! Database ! Server Setup ! Developers ! FAQ |- | [[#STEP_1_-_Getting_the_Client|STEP 1 Client]] | [[#STEP_3.1_-_Getting_the_source_code|STEP 3.1 Get Src]] | [[#STEP_3.4_-_Database_Installation_and_Setup|STEP 3.4 DB]] | [[#STEP_3.5_-_Server_Configuration|STEP 3.5 Config]] | [[#Crucible_Development|DEV]] | [[#Crucible_Known_Issues|ISSUES]] |- | [[#STEP_2_-_Setting_up_your_Build_and_Server_Environment|STEP 2 Setup]] | [[#STEP_3.2_-_Compiling_with_CMake|STEP 3.2 CMake]] | [[#Data_Import|Data Import]] | [[#Finishing_Notes|Finishing Up]] | [[#Building_a_Binary_Distribution_Package|DISTROS]] | |- | | [[#STEP_3.3_-_Compiling_the_Source_Code_Project|STEP 3.3 Compile]] | [[#Final_Checking_of_Database_Integrity|Final Checking]] | | | |- | | | [[#Adding_an_Account|Add Accounts]] | | | |- | | | [[#If_you_have_to_REBUILD_your_Database|Rebuild DB]] | | | |} <br /> {| |width="100%"| {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#DISCLAIMER|<span class="tocnumber">1</span> <span class="toctext">DISCLAIMER</span>]] * [[#Quick_Navigation|<span class="tocnumber">2</span> <span class="toctext">Quick Navigation</span>]] * [[#PREFACE|<span class="tocnumber">3</span> <span class="toctext">PREFACE</span>]] * [[#SUPPORTED_PLATFORMS|<span class="tocnumber">4</span> <span class="toctext">SUPPORTED PLATFORMS</span>]] * [[#STEP_1_-_Getting_the_Client|<span class="tocnumber">5</span> <span class="toctext">STEP 1 - Getting the Client</span>]] * [[#STEP_2_-_Setting_up_your_Build_and_Server_Environment|<span class="tocnumber">6</span> <span class="toctext">STEP 2 - Setting up your Build and Server Environment</span>]] ** [[#Build_Environment_-_Recommended_folder_structure|<span class="tocnumber">6.1</span> <span class="toctext">Build Environment - Recommended folder structure</span>]] ** [[#Server_Execution_Environment_-_Recommended_folder_structure|<span class="tocnumber">6.2</span> <span class="toctext">Server Execution Environment - Recommended folder structure</span>]] * [[#STEP_3_-_Server_setup|<span class="tocnumber">7</span> <span class="toctext">STEP 3 - Server setup</span>]] ** [[#STEP_3.1_-_Getting_the_source_code|<span class="tocnumber">7.1</span> <span class="toctext">STEP 3.1 - Getting the source code</span>]] *** [[#Getting_Git|<span class="tocnumber">7.1.1</span> <span class="toctext">Getting Git</span>]] *** [[#-----Windows-----|<span class="tocnumber">7.1.2</span> <span class="toctext">-----Windows-----</span>]] *** [[#-----Linux-----|<span class="tocnumber">7.1.3</span> <span class="toctext">-----Linux-----</span>]] ** [[#STEP_3.2_-_Compiling_with_CMake|<span class="tocnumber">7.2</span> <span class="toctext">STEP 3.2 - Compiling with CMake</span>]] *** [[#Getting_the_dependencies|<span class="tocnumber">7.2.1</span> <span class="toctext">Getting the dependencies</span>]] **** [[#-----Windows-----_2|<span class="tocnumber">7.2.1.1</span> <span class="toctext">-----Windows-----</span>]] ***** [[#Tools_and_Dependencies|<span class="tocnumber">7.2.1.1.1</span> <span class="toctext">Tools and Dependencies</span>]] **** [[#-----Linux-----_2|<span class="tocnumber">7.2.1.2</span> <span class="toctext">-----Linux-----</span>]] ***** [[#Linux_Mint_14|<span class="tocnumber">7.2.1.2.1</span> <span class="toctext">Linux Mint 14</span>]] *** [[#Running_CMake|<span class="tocnumber">7.2.2</span> <span class="toctext">Running CMake</span>]] **** [[#-----Windows-----_3|<span class="tocnumber">7.2.2.1</span> <span class="toctext">-----Windows-----</span>]] ***** [[#CMake_Manual_Dependency_Configuration_-_.28if_Cmake_fails_to_download_them.29|<span class="tocnumber">7.2.2.1.1</span> <span class="toctext">CMake Manual Dependency Configuration - (if Cmake fails to download them)</span>]] **** [[#-----Linux-----_3|<span class="tocnumber">7.2.2.2</span> <span class="toctext">-----Linux-----</span>]] ** [[#STEP_3.3_-_Compiling_the_Source_Code_Project|<span class="tocnumber">7.3</span> <span class="toctext">STEP 3.3 - Compiling the Source Code Project</span>]] *** [[#Building_the_Server_from_Source|<span class="tocnumber">7.3.1</span> <span class="toctext">Building the Server from Source</span>]] **** [[#-----Windows-----_4|<span class="tocnumber">7.3.1.1</span> <span class="toctext">-----Windows-----</span>]] **** [[#-----Linux-----_4|<span class="tocnumber">7.3.1.2</span> <span class="toctext">-----Linux-----</span>]] *** [[#Running_the_Server|<span class="tocnumber">7.3.2</span> <span class="toctext">Running the Server</span>]] *** [[#Debugging_the_Server|<span class="tocnumber">7.3.3</span> <span class="toctext">Debugging the Server</span>]] **** [[#-----Windows-----_5|<span class="tocnumber">7.3.3.1</span> <span class="toctext">-----Windows-----</span>]] **** [[#-----Linux-----_5|<span class="tocnumber">7.3.3.2</span> <span class="toctext">-----Linux-----</span>]] ***** [[#Using_KDevelop_and_KDbg|<span class="tocnumber">7.3.3.2.1</span> <span class="toctext">Using KDevelop and KDbg</span>]] ***** [[#If_you_are_a_sado-masichist_and_enjoy_massive_amounts_of_pain|<span class="tocnumber">7.3.3.2.2</span> <span class="toctext">If you are a sado-masichist and enjoy massive amounts of pain</span>]] *** [[#If_you_want_to_REBUILD_your_source_code|<span class="tocnumber">7.3.4</span> <span class="toctext">If you want to REBUILD your source code</span>]] **** [[#------Linux------|<span class="tocnumber">7.3.4.1</span> <span class="toctext">------Linux------</span>]] ***** [[#Change_CMake_Build_Profile|<span class="tocnumber">7.3.4.1.1</span> <span class="toctext">Change CMake Build Profile</span>]] ***** [[#Build_the_eve-server_project|<span class="tocnumber">7.3.4.1.2</span> <span class="toctext">Build the eve-server project</span>]] ** [[#STEP_3.4_-_Database_Installation_and_Setup|<span class="tocnumber">7.4</span> <span class="toctext">STEP 3.4 - Database Installation and Setup</span>]] *** [[#Properly_setup_your_MySQL_server|<span class="tocnumber">7.4.1</span> <span class="toctext">Properly setup your MySQL server</span>]] *** [[#Required_Software|<span class="tocnumber">7.4.2</span> <span class="toctext">Required Software</span>]] *** [[#Database_Setup|<span class="tocnumber">7.4.3</span> <span class="toctext">Database Setup</span>]] *** [[#Data_Import|<span class="tocnumber">7.4.4</span> <span class="toctext">Data Import</span>]] **** [[#Automated_SQL_Setup|<span class="tocnumber">7.4.4.1</span> <span class="toctext">Automated SQL Setup</span>]] **** [[#Manual_Execution_of_each_SQL_piece|<span class="tocnumber">7.4.4.2</span> <span class="toctext">Manual Execution of each SQL piece</span>]] *** [[#Final_Checking_of_Database_Integrity|<span class="tocnumber">7.4.5</span> <span class="toctext">Final Checking of Database Integrity</span>]] *** [[#Adding_an_Account|<span class="tocnumber">7.4.6</span> <span class="toctext">Adding an Account</span>]] *** [[#If_you_have_to_REBUILD_your_Database|<span class="tocnumber">7.4.7</span> <span class="toctext">If you have to REBUILD your Database</span>]] *** [[#Tweak_your_MySQL_Server_Settings_for_Optimum_Performance|<span class="tocnumber">7.4.8</span> <span class="toctext">Tweak your MySQL Server Settings for Optimum Performance</span>]] ** [[#STEP_3.5_-_Server_Configuration|<span class="tocnumber">7.5</span> <span class="toctext">STEP 3.5 - Server Configuration</span>]] *** [[#Directory_Setup|<span class="tocnumber">7.5.1</span> <span class="toctext">Directory Setup</span>]] *** [[#File_Setup|<span class="tocnumber">7.5.2</span> <span class="toctext">File Setup</span>]] **** [[#Database_Tag_Changes|<span class="tocnumber">7.5.2.1</span> <span class="toctext">Database Tag Changes</span>]] **** [[#Net_Tag_Changes|<span class="tocnumber">7.5.2.2</span> <span class="toctext">Net Tag Changes</span>]] **** [[#Files_Tag_Changes|<span class="tocnumber">7.5.2.3</span> <span class="toctext">Files Tag Changes</span>]] *** [[#Keeping_The_Server_Updated|<span class="tocnumber">7.5.3</span> <span class="toctext">Keeping The Server Updated</span>]] ** [[#Finishing_Notes|<span class="tocnumber">7.6</span> <span class="toctext">Finishing Notes</span>]] *** [[#Windows|<span class="tocnumber">7.6.1</span> <span class="toctext">Windows</span>]] *** [[#Linux|<span class="tocnumber">7.6.2</span> <span class="toctext">Linux</span>]] ** [[#FAQ|<span class="tocnumber">7.7</span> <span class="toctext">FAQ</span>]] * [[#Crucible_Development|<span class="tocnumber">8</span> <span class="toctext">Crucible Development</span>]] ** [[#Building_a_Binary_Distribution_Package|<span class="tocnumber">8.1</span> <span class="toctext">Building a Binary Distribution Package</span>]] * [[#Crucible_Known_Issues|<span class="tocnumber">9</span> <span class="toctext">Crucible Known Issues</span>]] ** [[#Right_click_on_ship_not_responding|<span class="tocnumber">9.1</span> <span class="toctext">Right click on ship not responding</span>]] |} |} = <span id="PREFACE" class="mw-headline"> PREFACE </span> = This guide is meant more for the intermediate programmer and/or computer power user. It is not meant for an average computer user or gamer that just wants to connect to a server and start playing EVE. This guide assumes basic to intermediate knowledge in the following areas. If you find that you do not have this prerequisite knowledge, you will find it nearly impossible to follow this guide on your own and are encouraged to just either go learn about these areas or you don't build the server, setup the database and try to run your own server. You'll just have to &quot;find&quot; one to connect to. As stated in the [[#DISCLAIMER|DISCLAIMER]] above, The EVEmu Project does not host any servers nor does it encourage anyone to do so. <br /> Prerequisites: * MySQL Server - know how to setup a MySQL server from scratch, administrate it, make/remove accounts, create databases, tables, etc * Visual Studio - basic use of Visual Studio including opening a project, changing project properites, running build configurations * Git SCM - basic to intermediate use of Git Source control management system either via a client or command line * File systems - intermediate use of file systems and directory management on your platform of choice <br /> = <span id="SUPPORTED_PLATFORMS" class="mw-headline"> SUPPORTED PLATFORMS </span> = (updated 2012-05-23) '''WINDOWS:''' Windows builds are currently fully functional. Windows XP, Vista, 7 (32 or 64 bit both work) <br /> '''LINUX:''' Linux builds are currently fully functional. Recommended distros: Ubuntu, Debian, really anything. = <span id="STEP_1_-_Getting_the_Client" class="mw-headline"> STEP 1 - Getting the Client </span> = * http://gork.levelbelow.net/eveexe/360229/ or http://192.228.108.100/~evemu/evemu/ or [http://eve.alasiya.net/misc/ here] # Download the '''EVE_Online_Installer_360229.exe''', '''eveonline_360229_1of2.7z''', and '''eveonline_360229_2of2.7z''' # Install the client using the .exe # [WIN] Download the [https://github.com/bluepatcher/blue_patcher/archive/master.zip blue_patcher ZIP package for Crucible] # [MAC] Download the [https://github.com/Reve/blue_patcher_mono/archive/master.zip blue_patcher ZIP package for Crucible] # [MAC] READ THE README otherwise you are doomed to fail [https://github.com/Reve/blue_patcher_mono/blob/master/README.md blue_patcher Mac Instructions] # Finally, follow the instructions in the README.md file to run the patcher and configure your client to connect to a server <span class="underline">'''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe'''</span> Crucible is no longer available from CCP, so you will have to use the link above to download the currently supported client build for EVEmu Crucible. = <span id="STEP_2_-_Setting_up_your_Build_and_Server_Environment" class="mw-headline"> STEP 2 - Setting up your Build and Server Environment </span> = We recommend a nicely organized folder structure for keeping your build area separate from your server execution area in case you need to delete/move either of them. I will also illustrate a good way to keep dependencies of the source code in a separate area than either the source tree or the server execution area. <span class="underline">A note on '''&lt;path_from_root&gt;''' shown below:</span> this is simply the folder path from the base drive letter (C: in Windows, or '/' in linux) to where you want to store your EVEmu development tree. For simplicity for new users/developers, you may simply use C:\ or '/' as your path from root. More complicated paths might be F:\projects\servers\ (windows) or /home/projects/servers/ (linux). === <span id="Build_Environment_-_Recommended_folder_structure" class="mw-headline"> Build Environment - Recommended folder structure </span> === * &lt;path_from_root&gt; - ''(see note above about &lt;path_from_root&gt;)'' ** \'''evemu''' *** \'''server''' **** \'''common''' - ''optional, only if you want to manually specify and maintain the source's dependencies'' ***** this will contain various subdirectories for the server source dependencies, such as mysql, boost, zlib, etc **** \'''evemu_server''' ***** this will contain the entire source tree for the server source code === <span id="Server_Execution_Environment_-_Recommended_folder_structure" class="mw-headline"> Server Execution Environment - Recommended folder structure </span> === * &lt;path_from_root&gt; - ''(see note above about &lt;path_from_root&gt;)'' ** \'''servers''' *** perhaps you run multiple game servers like WoW, EVEmu, etc, LOL *** \'''evemu''' **** \'''bin''' ***** in here, you'll put the '''eve-server.exe''' , '''libmysql.dll''' and '''devtools.raw''' files ***** ('''eve-server.exe''' you'll find in /builds/src/eve-server/Release) ***** ('''libmysql.dll''' you'll find in /builds/mysql-XXXXXXX/lib) ***** ('''devtools.raw''' you'll find in /utils) **** \'''etc''' ***** in here, paste a copy of the '''log.ini''', and '''eve-server.xml''' files you'll find inside the source tree's /utils directory **** \'''log''' = <span id="STEP_3_-_Server_setup" class="mw-headline"> STEP 3 - Server setup </span> = '''NOTE:''' If you have server binaries, then proceed directly to '''[[#STEP_3.4_-_Database_Installation_and_Setup|STEP 3.4]]''' * [[#STEP_3.1_-_Getting_the_source_code|STEP 3.1]] - Getting the source code * [[#STEP_3.2_-_Compiling_with_CMake|STEP 3.2]] - Compiling with CMake * [[#STEP_3.3_-_Compiling_the_Source_Code_Project|STEP 3.3]] - Compiling the Source Code Project * [[#STEP_3.4_-_Database_Installation_and_Setup|STEP 3.4]] - Database Installation and Setup * [[#STEP_3.5_-_Server_Configuration|STEP 3.5]] - Server Configuration <br /> == <span id="STEP_3.1_-_Getting_the_source_code" class="mw-headline"> STEP 3.1 - Getting the source code </span> == === <span id="Getting_Git" class="mw-headline"> Getting Git </span> === '''LEARN''': * The best Git primer we've seen is a 1hr 40min video series [http://excess.org/article/2008/07/ogre-git-tutorial/ found here] * If you prefer to use Git via command line, here is a good tutorial on how to do it. [http://help.github.com/linux-set-up-git/ Git-Linux] [http://help.github.com/win-set-up-git/ Git-Windows] '''GET''': * You need a Git client in order to download the source. Windows users can download SmartGit, Linux users need to install the respective package (usually git). '''NOTE:''' Use Git to pull down the source, we recommend if you want to develop, create a Github account. Then you can fork from the main branch and develop from there. The EVEmu server source code is hosted on [http://www.github.com/ GitHub] and uses the Git SCM (Source Control Management) system for revision and branch control. Here is the home page for the latest server source code project: * [http://www.github.com/evemuproject/evemu_server EVEmu Project - evemu_server] === <span id="-----Windows-----" class="mw-headline"> -----Windows----- </span> === '''GUI route''': Download [http://www.syntevo.com/smartgit/index.html Smartgit] and follow the on screen instructions to pull down the source from github. This guide is not going to contain a primer on how to use SmartGit. Most of our developers use the command line git, so most of this guide is going to be oriented more toward using git on the command line. '''Command Line route''': * Download and install [http://code.google.com/p/msysgit/ msysgit] command line environment for windows * Run the Git Bash tool to get the git command line * Using the 'cd' command, navigate to a directory location on your hard drive, such as '''C:\evemu\server''' and from that location in the command line for Git, type this: <span class="tex2jax_ignore"></span> <pre>$ git clone https://github.com/evemuproject/evemu_server.git</pre> You'll end up with the source tree being copied to the location '''C:\evemu\server\evemu_server''' and you'll be ready for the next step. === <span id="-----Linux-----" class="mw-headline"> -----Linux----- </span> === You can use any gui available for Linux. If you prefer terminal, type this: <span class="tex2jax_ignore"></span> <pre>$ git clone https://github.com/evemuproject/evemu_server.git</pre> The source will be downloaded into subdirectory '''evemu_server'''. == <span id="STEP_3.2_-_Compiling_with_CMake" class="mw-headline"> STEP 3.2 - Compiling with CMake </span> == EVEmu can be built using [http://www.cmake.org/ CMake]: a tool designed to ease the whole process of compiling on various platforms. You can find further information about it on the homepage; here we'll concentrate only to how to use it to build EVEmu. === <span id="Getting_the_dependencies" class="mw-headline"> Getting the dependencies </span> === ==== <span id="-----Windows-----_2" class="mw-headline"> -----Windows----- </span> ==== '''NOTE:''' Dependencies are being automatically downloaded, installed, and linked to during the CMake process, so manually downloading, installing, extracting, and pointing CMake to dependencies is OPTIONAL. ===== <span id="Tools_and_Dependencies" class="mw-headline"> Tools and Dependencies </span> ===== '''RECOMMENDED: Visual Studio 2013 with Update 3 has been tested and approved for use on EVEmu.''' <br /> '''NOTE: Visual Studio 2012 is EXPERIMENTAL and NOT officially supported by EVEmu yet.''' {| !width="25%"| Tool !width="25%"| Visual Studio 2010 !width="25%"| Visual Studio 2012 (tested, experimental) !width="25%"| Visual Studio 2013 (recommended) |- | '''CMake''' | '''CMake:''' * Download and Install: [http://www.cmake.org/files/v2.8/cmake-2.8.8-win32-x86.exe CMake v2.8.8 (win32)] - ([http://www.cmake.org/cmake/resources/software.html main download]) | '''CMake:''' * Download and Install: [http://www.cmake.org/files/v2.8/cmake-2.8.9-win32-x86.exe CMake v2.8.9 (win32)] - ([http://www.cmake.org/cmake/resources/software.html main download]) | '''CMake:''' * Download and Install: [http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.exe CMake v2.12.2 (win32)] - ([http://www.cmake.org/cmake/resources/software.html main download]) |- | '''Visual Studio for<br /> ''32-bit'' builds''' | * Download and Install: [http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express Visual Studio 2010 Express ISO] * Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=23691 VS 2010 Express SP1] | * Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=34673 Visual Studio 2012 Express for Windows Desktop] * Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=39305 VS 2012 Update 4] | * Download and Install: [http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop VS 2013 Express 2013 for Windows Desktop] * Download and Install: [http://www.microsoft.com/en-us/download/details.aspx?id=43721 VS 2013 Update 3] * '''TO BE TESTED:''' [http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop VS 2013 Update 4] |- | '''Visual Studio for<br /> ''64-bit'' builds''' | Get [http://www.microsoft.com/en-us/download/details.aspx?id=2680 Windows SDK for VS 2010] | Get [http://www.microsoft.com/en-us/download/details.aspx?id=30668 Windows SDK for VS 2012] | Get [http://www.microsoft.com/en-us/download/details.aspx?id=40758 Windows SDK for VS 2013] |- | '''Notes''' | none | none | [http://blogs.msdn.com/b/zainnab/archive/2013/08/28/visual-studio-2013-working-in-the-breakpoints-window.aspx Enable Breakpoints Windows] |} * Download and Install: [http://code.google.com/p/msysgit/downloads/list Git For Windows CMD] ==== <span id="-----Linux-----_2" class="mw-headline"> -----Linux----- </span> ==== * cmake * git * make * g++ * zlib, zlib-dev * libmysqlclient, libmysqlclient-dev * boost-build, libboost-dev '''NOTE:''' Just search your distro's repository for similarly named packages and install them. ===== <span id="Linux_Mint_14" class="mw-headline"> Linux Mint 14 </span> ===== This list of dependencies and procedures is for Linux Mint v14, specifically, which is based on Ubuntu, based on Debian, however, it may work for other Ubuntu-based distributions. * cmake * git * make * g++ * libmysqlclient-dev * zlib1g * zlib1g-dev * libboost-all-dev This last is optional as you could just let CMake install boost for you. === <span id="Running_CMake" class="mw-headline"> Running CMake </span> === '''WARNING: Do NOT use SPACES in any part of your path to the EVEmu source code or any of its dependencies (libraries like boost, mysql, zlib, etc). Any spaces in the path will cause MASSIVE errors when you go to compile the software in your compiler. YOU HAVE BEEN WARNED!!''' ==== <span id="-----Windows-----_3" class="mw-headline"> -----Windows----- </span> ==== Create directory '''C:\evemu\server\evemu_server\build'''. Go to the directory where you have installed CMake, there should be subdirectory bin. Go in there and run cmake-gui.exe. In the edit box labeled '''Where is the source code:''', click Browse source and pick '''C:\evemu\server\evemu_server''' In the edit box labeled '''Where to build the binaries:''', click Browse build and pick '''C:\evemu\server\evemu_server\build''' Now, click Configure button in the lower-left part. Another dialog pops up, asking you to choose compilers and a generator. Choose Visual Studio 10 2010, then use default native compilers and press Finish. CMake starts configuring your build. <br /> ===== <span id="CMake_Manual_Dependency_Configuration_-_.28if_Cmake_fails_to_download_them.29" class="mw-headline"> CMake Manual Dependency Configuration - (if Cmake fails to download them) </span> ===== '''STATUS - The ability to manually configure the location for depenencies is now broken due to changes made to the CMake build configuration that now automatically downloads, extracts, installs, and links to all dependencies used by the source. A solution is being worked that will allow us to disable this automatic process in favor of a fully manual dependency management option for at least the big three dependencies: boost, mysql, and zlib.''' If Manual Dependency Management is enabled, Configure will fail, because you haven't set several CMake variables yet. For each of the rows below, click the button Add Entry in the upper part, fill in the corresponding editboxes and click OK: Choose advance tab in cmake, The very first line should be Boost_include_DIR. Please update it to your path for Boost. <span class="tex2jax_ignore"></span> <pre>Name: CMAKE_SYSTEM_INCLUDE_PATH Type: PATH Value: C:\evemu\server\common\mysql\include;C:\evemu\server\common\zlib Name: CMAKE_SYSTEM_LIBRARY_PATH Type: PATH Value: C:\evemu\server\common\mysql\lib\opt Name: Boost_INCLUDE_DIR Type: PATH Value: C:\evemu\server\common\boost </pre> Now click Configure again and it should be fine. After configuration is done, click Generate and close the window. '''IMPORTANT''': Be sure there are NO red errors in the log window at the bottom of the CMake window. If there are any, take a look at them to see if they merit reporting to developers or if they are simply reporting the failure to configure something that you did not select for being configured, such as doxygen or eve-tool. Finally, you can now open the EVEmu server solution in Visual Studio. Just make sure to open it in the same version of Visual Studio that you told CMake to use when you setup the CMake build. ==== <span id="-----Linux-----_3" class="mw-headline"> -----Linux----- </span> ==== Type: <span class="tex2jax_ignore"></span> <pre>$ mkdir path/to/evemu/server/evemu_server/build $ cd path/to/evemu/server/evemu_server/build $ cmake ../.</pre> If you want to configure the build manually, such as select Release or Debug build profiles, run this command: <span class="tex2jax_ignore"></span> <pre>$ cmake -i path/to/evemu/server/evemu_server</pre> Alternatively, you can use the curses-based CMake (assuming you have it installed): <span class="tex2jax_ignore"></span> <pre>$ ccmake path/to/evemu/server/evemu_server</pre> This is particularly useful e.g. when you want to build a Debug binary. == <span id="STEP_3.3_-_Compiling_the_Source_Code_Project" class="mw-headline"> STEP 3.3 - Compiling the Source Code Project </span> == === <span id="Building_the_Server_from_Source" class="mw-headline"> Building the Server from Source </span> === ==== <span id="-----Windows-----_4" class="mw-headline"> -----Windows----- </span> ==== Browse to C:\evemu\server\evemu_server\build, there should be a file '''evemu.sln'''. Double-click it and Visual Studio opens up. You can set it to two modes, '''Debug''' or '''Release''' by choosing a selection from a drop-down menu near the center of the toolbar. Depending on your OS platform, you may want to choose between 32-bit and 64-bit using the drop-down menu to the right of the Release/Debug drop-down. Either Debug or Release build will work, but the Debug build's exe is much larger and much slower in performance due to all the debug symbols and extra code to support debugging that gets built into the exe. If you want to run the server and not debug at all, use the Release build as it will be much smaller in size and much faster. In the left file/folder tree view called ''Solution Explorer'', right-click Solution evemu and click Build solution. Compilation should start. ==== <span id="-----Linux-----_4" class="mw-headline"> -----Linux----- </span> ==== Type: <span class="tex2jax_ignore"></span> <pre>$ cd path/to/evemu/server/evemu_server/build $ make</pre> If you want to make use of a multicore CPU, specify number of cores with -j option. For example, if you had quad-core CPU, you'd type: <span class="tex2jax_ignore"></span> <pre>$ make -j4</pre> === <span id="Running_the_Server" class="mw-headline"> Running the Server </span> === You will need an eve-server.xml file in an etc/ directory, a log/ directory, and a bin/ directory somewhere or just use the location where eve-server.exe (eve-server in linux) is placed by CMake and Visual Studio (cmake and make on linux). On windows, you'll need the libmysql.dll in the same location as eve-server.exe. You can now run eve-server executable from its location. '''NOTE TO LINUX USERS: You will need to do one of two things regarding the API Server IP port:''' * Change eve-server.xml to specify a port number of &gt; 1024 for the API Server (you will NOT be able to use EFT with this server) * Run eve-server executable as root using port 64 if you want to be able to use EFT with this server === <span id="Debugging_the_Server" class="mw-headline"> Debugging the Server </span> === '''NOTE: Make sure you selected the DEBUG build profile in Visual Studio or Linux CMake and build the server. You will NOT be able to debug if you built it with the RELEASE build profile.''' These instructions will help you surmount the common problems when setting up your system to debug EVEmu server code. Skip to [[#STEP_3.4_-_Database_Installation_and_Setup|STEP 3.4 - Database Installation and Setup]] if you are not interested in developing code for this project and just want to run the server. ==== <span id="-----Windows-----_5" class="mw-headline"> -----Windows----- </span> ==== # Open the evemu project in Visual Studio. # To do FULL Rebuilds of entire project, select '''ALL_BUILD''' at the top of the list in '''Solution Explorer''', then either hit Ctrl+Alt+F7 key or click Build -&gt; Rebuild Solution from the menu bar. # To compile sub-projects by themselves, such as '''eve-server''', then select that sub-project in '''Solution Explorer''', then hit F7 for a Build or Ctrl+Alt+F7 for a Rebuild or access either from the Build menu on the menu bar. # To set the project for '''Debugging''', find the drop down box on the toolbar that is either going to have '''Release''' or '''Debug''' inside. If it says '''Debug''' you are good to go, just do a FULL rebuild of the whole project. If it says '''Release''', click on it then select '''Debug''', then do a FULL rebuild of the whole project. # To RUN eve-server after you have built it under '''Debug''' or '''Release''', follow these steps: ## Right-click on '''eve-server''' in the '''Solution Explorer''' and select '''Properties''' ## Expand '''Configuration Properties''' and click '''Debugging''' ## Put the text '''Debug''' in the field called '''Working Directory''', then click the '''OK''' button ##* If you are building '''Release''', then set the '''Working Directory''' to '''Release''', then click the '''OK''' button ##* You can set both by choosing either '''Debug''' or '''Release''' in the drop-down box labeled '''Configuration:''' in the upper left corner of the '''eve-server Property Pages''' ## Now, navigate to your server project source root directory, then drill down to this sub-folder: '''build\src\eve-server''' ## Make a new folder called '''etc''' and put your '''eve-server.xml''' file in that new '''etc''' folder. You can copy and modify the provided example eve-server.xml found inside the /utils subdirectory off the root of the source tree. ## Make a new folder called '''log''' and put your '''log.ini''' file in that new '''log''' folder. You can copy and modify the provided example log.ini found inside the /utils subdirectory off the root of the source tree. ## Back in Visual Studio, right click on '''eve-server''' again in the '''Solution Explorer''' and select '''Set as StartUp Project''', the '''eve-server''' tree label will now be bold to indicate this change ## You can now hit F5 to execute the debug build .exe or click Debug -&gt; Start Debugging from the menu bar. ==== <span id="-----Linux-----_5" class="mw-headline"> -----Linux----- </span> ==== ===== <span id="Using_KDevelop_and_KDbg" class="mw-headline"> Using KDevelop and KDbg </span> ===== Install KDevelop4 or later and KDbg on your KDE system. If your linux system is not KDE, get KDE and use it. The KDE window manager is the most like windows and has the most GUI applications available for it compared to almost all other window managers outside of Gnome. Start KDevelop and click the Open Project... button along the row of buttons on the green start page. You can also select Project menu -&gt; Open/Import project... In this dialog, navigate to the evemu_server directory in which the entire git repository has been cloned and select the CMakeLists.txt file, then click Next. Verify on this next page that Name = evemu_server and Build System = CMake Project Manager and then click Finish. It will take quite a while to load the first time and eventually you'll see some buttons along the far left side of the GUI. Click Projects and you'll see a top folder 'evemu-server' inside of which you'll see the entire tree of files as you would in a file manager. You'll now want to setup a Launch configuration. Click Run menu -&gt; Configure Launches. In this dialog, if there is not already a 'New Native Application Configuration' under 'evemu_server', then click the + button at the top of the list to add one. In the area on the right where it says '''Executable''', fill in the full path to the 'eve-server' executable under build/src/eve-server from the evemu_server root path including the eve-server executable name, such as <pre>/home/myusername/projects/evemu_server/build/src/eve-server/eve-server</pre> In the area where it says '''Working Directory''', fill in the full path to the folder where the 'eve-server' executable was placed after 'make' completed, such as: <pre>/home/myusername/projects/evemu_server/build/src/eve-server</pre> In the middle group ''Behavior'' check the box at the bottom of this group next to '''Use External Terminal''' Click the '''Debug''' selection under the new launch configuration at left. In this area at right where it says '''Debugger executable''', make sure it is empty as we want KDevelop to invoke by default Kdbg with gdb in the background. Click Apply and OK to save and close. You can now click the Execute or Debug buttons at the top of the KDevelop GUI just under the menu bar. '''Execute''' will simply run the server while Debug will open KDbg on eve-server to initiate debugging of the server application. '''TODO: more to follow when we actually are successful in loading KDbg with eve-server and its debug symbols''' ===== <span id="If_you_are_a_sado-masichist_and_enjoy_massive_amounts_of_pain" class="mw-headline"> If you are a sado-masichist and enjoy massive amounts of pain </span> ===== Assuming you've used the '''Debug''' build configuration, just use GDB: <span class="tex2jax_ignore"></span> <pre>$ gdb build/src/eve-server/eve-server</pre> === <span id="If_you_want_to_REBUILD_your_source_code" class="mw-headline"> If you want to REBUILD your source code </span> === Whenever you update your source code working tree from the github repository, add files to the project (which requires adding them to the CMakeLists.txt files), or change one of the .xmlp files found in /src/eve-common/packets/xmlp, you MUST do a full REBUILD of your source code to ensure that all changes and new files are made available to the compiler. Here's how you do that: REBUILD source: This is simply accomplished by closing Visual Studio, opening CMake, clicking Configure twice, then Generate once, and finally opening Visual Studio again. Now, you need to right-click on the ALL_BUILD project, and click Rebuild. This will rebuild your entire source code from scratch using any new files or modified packet xmlp files that were added/modified by either you or whomever pushed changes to the github repository that you just pulled down. ==== <span id="------Linux------" class="mw-headline"> ------Linux------ </span> ==== If you've already imported your CMake project into KDevelop as described above under Debugging the Server, then you can both select which build profile you want CMake to use (Debug or Release) and invoke CMake configure and Build the eve-server project. Here's how: ===== <span id="Change_CMake_Build_Profile" class="mw-headline"> Change CMake Build Profile </span> ===== In KDevelop, right-click the evemu_server folder at the top of the tree at left in the Projects window and select Open Configuration... at the bottom of the popup menu. In here, you can change the '''CMAKE_BUILD_TYPE''' variable to be either '''Debug''' or '''Release''' typed exactly as shown right here. Click OK to set it and if you changed anything, KDevelop will invoke CMake to do the project configure to update the makefile with your changes. ===== <span id="Build_the_eve-server_project" class="mw-headline"> Build the eve-server project </span> ===== In KDevelop, once you've set your CMake build profile, you can just click Project menu -&gt; Build Selection or hit the F8 key. This will take a long time. If you need to run CMake configure first, click Project menu -&gt; Configure selection and CMake will run. Then you can click Project menu -&gt; Build selection or hit F8 key to build. == <span id="STEP_3.4_-_Database_Installation_and_Setup" class="mw-headline"> STEP 3.4 - Database Installation and Setup </span> == '''NOTE:''' This guide assumes directory structure created in compiling with cmake guide. === <span id="Properly_setup_your_MySQL_server" class="mw-headline"> Properly setup your MySQL server </span> === You need to properly setup your MySQL server '''before''' you attempt to build the database following the instructions we present below, so go open up your '''my.ini''' (windows) or '''my.conf''' (linux) in a text editor. Find the following parameters and set them to the values you see in the following list. If they are not present in the file, add them. Please do a search FIRST before adding them, you may have just missed them scrolling by. * under '''[mysqld]''' ** '''max_allowed_packet = 1000M''' ** '''key_buffer = 256M''' * under '''[mysqldump]''' ** '''max_allowed_packet = 1000M''' Save the file and close it. '''Restart your MySQL server before proceeding to build the database.''' <br /> === <span id="Required_Software" class="mw-headline"> Required Software </span> === * MySQL server - '''NO LATER THAN v5.5.x''' ** Intermediates: [http://www.apachefriends.org/en/xampp.html Get XAMPP] - XAMPP is your friend, has apache, mysql, php, and lots more, already configured, ready to go with a bit of setup, but they have instructions to help you ** EXPERTS ONLY: [http://dev.mysql.com/downloads/mysql/5.1.html#win32 MySQL Server 5.1] (It's recommend downloading the Windows Essentials installer, as it is all that is needed) * <s>[http://builds.evemu.org/crucible_360229/database/evemu.7z Crucible v1.6 MySQL conversion from Official DB dump]</s> - hosted by the EVEmu team ''Redundent'' * <s>[http://zofu.no-ip.de/cru16/cru16-mysql5-v1.sql.bz2 Crucible v1.6 MySQL conversion from Official DB dump]</s> - ''Deactivated'' * http://eve.alasiya.net/misc/cru16-mysql5-v1.sql.bz2 - Currently down * http://192.228.108.100/~evemu/evemu/cru16-mysql5-v1.sql - Current * ** '''This is the last database update for Crucible''': CCP's most recent release of the Database Dump is Crucible 1.6, '''therefore we use this''' ** We keep a watch on [http://wiki.eve-id.net/CCP_Toolkit_Release_History CCP's Toolkit site] for DB dump updates === <span id="Database_Setup" class="mw-headline"> Database Setup </span> === Download and install the latest stable version of MySQL 5.5.x or install a whole web server package like [http://www.apachefriends.org/en/xampp.html XAMPP (recommended)] from the links above. Extract the dowloaded database dump to directory '''C:\evemu\server\evemu_server\sql'''. Browse into '''C:\evemu\server\evemu_server\sql\utils'''. '''If you are on Windows:''' In the '''/sql/utils/''' directory, Execute merge-ofic-updates.bat. '''If you are on Linux:''' In the '''/sql/utils/''' directory, Execute merge-ofic-updates.sh. This should create new file called ofic-updates.sql in parent directory sql. Now, you'll have these .sql files in the /sql directory: * cru16-mysql5-v1.sql * evemu_dynamic-dump.sql * evemu_static-dump.sql * ofic-updates.sql * prime_db.sql * ./evemu-updates/liveupdates.sql '''NOTE:''' cru16-mysql5-v1.sql.sql is the biggest sql and takes the longest to write into the database, over 460 MB import. === <span id="Data_Import" class="mw-headline"> Data Import </span> === '''WARNING!''' It is recommended that you DO NOT use mysql tools such as Navicat, phpmyadmin, etc to do the SQL import on any of these SQL files as those tools &quot;may&quot; truncate some of the larger queries in these files. If you know that your tool of choice does not do this, you should be fine. This is a word of warning to those who will use tools like these and wonder why their databases are not built correctly, meaning they are missing whole tables or get other strange SQL-related errors when starting up the server or during character creation and login. '''IMPORTANT:''' Paths should use / instead of \ First, make sure you put the path to your MySQL 'bin' folder in your PATH environment variable. Open a command prompt and change directory to the C:\evemu\server\evemu_server\sql directory and run mysql in that prompt like this: <span class="tex2jax_ignore"></span> <pre>C:\evemu\server\evemu_server\sql&gt; mysql -u &lt;username&gt; -p</pre> where '''&lt;username&gt;''' is your mysql database username, then type the password and hit enter. You will see a &quot;mysql&gt;&quot; prompt, now you can create database and source the sql files using instructions below. You will now need to create the EVEmu database, to do this type at the mysql command prompt: <span class="tex2jax_ignore"></span> <pre>create database evemu;</pre> Now hit enter, it should tell you that was successful by saying: <span class="tex2jax_ignore"></span> <pre>Query OK, 1 row affected.</pre> INFO: Don't panic if you get multiple messages like this. It's normal and it usually takes a while to setup. (30 mins or so) After each query is completed it will display mysql&gt; - at this point simply run the next one. ==== <span id="Automated_SQL_Setup" class="mw-headline"> Automated SQL Setup </span> ==== To build the database in one command, you first need to copy the &quot;cru16-mysql5-v1.sql&quot; file into the /sql dir of the source, where the other sql files are located. Open a command prompt IN the sql/ directory so you are local to all the sql files the following script needs access to and run the following command: <pre>evemu_build_database.bat &lt;mysql_username&gt; &lt;mysql_password&gt; evemu</pre> '''If this completes without errors, your database is completely setup. Now, proceed to &quot;Final Checking of Database Integrity&quot;.''' ==== <span id="Manual_Execution_of_each_SQL_piece" class="mw-headline"> Manual Execution of each SQL piece </span> ==== If you have trouble for one reason or another using the automated setup, then try using these manual steps in the mysql command prompt to setup your database. Now to import the actual data... to do this you'll need to use the following queries (each line is a separate query - '''don't execute them all at once!'''): <span class="tex2jax_ignore"></span> <pre>use evemu; source C:/evemu/server/evemu_server/sql/cru16-mysql5-v1.sql; source C:/evemu/server/evemu_server/sql/ofic-updates.sql; source C:/evemu/server/evemu_server/sql/evemu_static-dump.sql; source C:/evemu/server/evemu_server/sql/evemu_dynamic-dump.sql; source C:/evemu/server/evemu_server/sql/prime_db.sql; source C:/evemu/server/evemu_server/sql/liveupdates.sql;</pre> === <span id="Final_Checking_of_Database_Integrity" class="mw-headline"> Final Checking of Database Integrity </span> === There are some final checks on your database that are highly recommended that you perform in order to ensure your database was 100% correctly setup in the previous steps. These are listed below: # Check the '''AUTO_INCREMENT''' value in the '''entity''' table to make sure it is set to this value: '''140000000'''. If it is not set to that value, change it to this value '''140000000'''. If you do not, you may experience a server crash when you make your first character, so DO check it and set it if it is not the correct value. A common error that you may encounter if you miss this step is something like this in the server console due to the fact that the '''AUTO_INCREMENT''' was not set and the last itemID was'''61000003''' or something. <span class="tex2jax_ignore"></span> <pre>InventoryDB::GetItem(..\..\..\src\eve-server\inventory\InventoryDB.cpp:471): Item 61000004 not found</pre> === <span id="Adding_an_Account" class="mw-headline"> Adding an Account </span> === This is really simple... just type the following: <span class="tex2jax_ignore"></span> <pre>INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0);</pre> Simply make sure to replace your_account_name and your_password with what you want your username and password to be! '''NOTE:''' For further reading and reference, the role value indicated in the above query was generated after some research and can be seen [[EVEmu_Account_Roles.html|in this article on Roles after the Incursion and later table]], we've called it &quot;ROLEMASK_GRAVY&quot;. If you are new to MySQL command line, you can try using Navicat Lite http://www.wizdownloads.com/download/Windows/navicat-lite/ it has an easy to use interface. === <span id="If_you_have_to_REBUILD_your_Database" class="mw-headline"> If you have to REBUILD your Database </span> === If you somehow corrupt your database or the server does it as a result of a crash or wrong SQL query in the code, or you need to rebuild it due to development actions taken that modified SQL files found in the source's /sql directory, here's what we mean by &quot;REBUILD&quot;: REBUILD database: This is simply &quot;dropping&quot; the entire evemu database in mysql, such that the database is completely deleted, as in, the database name is no longer visible or accessible. Then, the database is built again from scratch by first creating a new database with the name you used before, switching to that database and running the &quot;evemu_setup_database.sql&quot; file on it. So, this basically means that you proceed directly to the &quot;Data Import&quot; section above on this page AFTER you have DROPPED your complete database from MySQL either using a MySQL client to do it (phpmyadmin, navicat, MySQL Workbench, etc) or by using the mysql command line as follows: <span class="tex2jax_ignore"></span> <pre>mysql&gt; drop database evemu;</pre> '''WARNING: MySQL does NOT prompt you on the command line, when you hit enter, it's too late, no going back. So, if you NEED to backup your database, do an export of the whole thing first.''' === <span id="Tweak_your_MySQL_Server_Settings_for_Optimum_Performance" class="mw-headline"> Tweak your MySQL Server Settings for Optimum Performance </span> === Have a look at these articles for advice on how to tweak your MySQL Server settings for optimum performance of your server: * [http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/ What to tune in MySQL Server after installation] * [http://github.com/rackerhacker/MySQLTuner-perl MySQLTuner-perl script] - monitors use of your mysql server over a long time to recommend tweaks to obtain optimum performance <br /> == <span id="STEP_3.5_-_Server_Configuration" class="mw-headline"> STEP 3.5 - Server Configuration </span> == '''NOTE:''' This guide assumes directory structure where you have git cloned the '''evemu_server''' project into '''C:\projects''' resulting in a path of '''C:\projects\evemu_server''' for the source tree. To get the server up and running correctly, you will need to put various files in the correct places, and make modifications to some of them. === <span id="Directory_Setup" class="mw-headline"> Directory Setup </span> === # Create a location for your server binaries and cache files, such as '''C:\evemu_server''', create the folders '''bin''', '''etc''', '''log''' and '''server_cache''' # Copy '''eve-server.exe''' from '''C:\projects\evemu_server\build\src\eve-server\Release''' to '''C:\evemu_server\bin''' # Copy '''libmysql.dll''' and '''libmysqld.dll''' from '''C:\projects\evemu_server\build\mysql-5.x.x-xxxx\lib''' to '''C:\evemu_server\bin''' #* An example would be '''C:\projects\evemu_server\build\mysql-5.5.25a-win32\lib''' # Copy '''eve-server.xml''' from '''C:\projects\evemu_server\utils''' to '''C:\evemu_server\etc''' === <span id="File_Setup" class="mw-headline"> File Setup </span> === Browse to '''C:\evemu_server\log''' and create empty text file named '''eve-server.log''' Browse to '''C:\evemu_server\etc''' and create empty text file named '''log.ini''' '''_OR_''' use the sample '''log.ini''' file in the source code. After that go to '''C:\evemu_server\etc''' and open '''eve-server.xml''' in your favorite text editor, You will need to change 2 sets of settings separated by &lt;&gt; tags (there are many optional settings to mess around, if you know what you are getting your hands into). '''Remember:''' Every set up is different so use your own setting and don't copy and paste! We will assume you have followed the previous step of setting up the database and we will go ahead and show an example of the needed changes: ==== <span id="Database_Tag_Changes" class="mw-headline"> Database Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;database&gt; &lt;host&gt;127.0.0.1&lt;/host&gt; &lt;username&gt;eve&lt;/username&gt; &lt;password&gt;eve&lt;/password&gt; &lt;db&gt;eve&lt;/db&gt; &lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt; &lt;/database&gt;</pre> Example: <span class="tex2jax_ignore"></span> <pre>&lt;database&gt; &lt;host&gt;127.0.0.1&lt;/host&gt; &lt;username&gt;root&lt;/username&gt; &lt;password&gt;password&lt;/password&gt; &lt;db&gt;evemu&lt;/db&gt; &lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt; &lt;/database&gt;</pre> '''NOTE:''' You will need to insert your own MySQL username and password '''NOTE:''' Please make sure a password is set or client will stop after trying to connect ==== <span id="Net_Tag_Changes" class="mw-headline"> Net Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;net&gt; &lt;!-- &lt;port&gt;26000&lt;/port&gt; --&gt; &lt;!-- &lt;imageServerPort&gt;26001&lt;/imageServerPort&gt; --&gt; &lt;!-- &lt;imageServer&gt;localhost&lt;/imageServer&gt; --&gt; &lt;!-- &lt;apiServerPort&gt;26002&lt;/apiServerPort&gt; --&gt; &lt;!-- &lt;apiServer&gt;localhost&lt;/apiServer&gt; --&gt; &lt;/net&gt;</pre> Example(Must be 26000): <span class="tex2jax_ignore"></span> <pre>&lt;net&gt; &lt;port&gt;26000&lt;/port&gt; &lt;imageServerPort&gt;26001&lt;/imageServerPort&gt; &lt;imageServer&gt;localhost&lt;/imageServer&gt; &lt;apiServerPort&gt;26002&lt;/apiServerPort&gt; &lt;apiServer&gt;localhost&lt;/apiServer&gt; &lt;/net&gt;</pre> ==== <span id="Files_Tag_Changes" class="mw-headline"> Files Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;files&gt; &lt;!-- &lt;logDir&gt;../log/&lt;/logDir&gt; --&gt; &lt;!-- &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; --&gt; &lt;!-- &lt;cacheDir&gt;&lt;/cacheDir&gt; --&gt; &lt;/files&gt;</pre> Example: <span class="tex2jax_ignore"></span> <pre>&lt;files&gt; &lt;logDir&gt;../log/&lt;/logDir&gt; &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; &lt;cacheDir&gt;../server_cache&lt;/cacheDir&gt; &lt;/files&gt;</pre> The '''../log/eve-server.log''' will contain the text from the eve-server console window. The '''../etc/log.ini''' file contains settings to control how eve-server outputs messages to the log. We need more definition as to what goes in this file. Finally, the '''../server_cache''' directory is where the server will create files for all cached objects when the server starts up. '''NOTE:''' If any cached database tables change during server down-time, you MUST delete ALL cache files in this directory BEFORE starting up the server again. The server does not check to see if the tables changed. === <span id="Keeping_The_Server_Updated" class="mw-headline"> Keeping The Server Updated </span> === The Evemu core updates very often. To keep your server up to date with the current Evemu revision; you must perform a simple core update and recompile. # Use your favorite git gui or the git command line to keep your source up to date # Re-run CMake just in case new files were added or old files were removed. # You must now rebuild you solution to actually see the changes in game. # Run the &quot;evemu&quot; sln with C++ and rebuild the solution '''MUST BE SET ON 'DEBUG' or 'RELEASE' (the question of your choice - for now is just a size of exe file on exit. No any stability or workability differences for now,except of some crashes,caused by svcerror and beancount errors on release binary.''' == <span id="Finishing_Notes" class="mw-headline"> Finishing Notes </span> == === <span id="Windows" class="mw-headline"> Windows </span> === Then you should be able to run eve-server.exe to start the server. The server log will be stored in C:\evemu\log\eve-server.log if you need it. Wait for the message : &quot;Init Done&quot; before initiating any action associated with the server(Even opening a client). [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 See here] for an old forum thread that discusses eve-server restart scripts in the cases where the server crashes, somewhere down the page is a script for windows. === <span id="Linux" class="mw-headline"> Linux </span> === You can just run the eve-server executable in your build directory, or you can use a script to run it, even to restart it if it ever crashes. [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 Here is a forum thread] that lists several different scripts on how the eve-server can be restarted if it crashes. == <span id="FAQ" class="mw-headline"> FAQ </span> == You will find it under [[Crucible_FAQ.html|Crucible FAQ]] = <span id="Crucible_Development" class="mw-headline"> Crucible Development </span> = Information will be soon here. == <span id="Building_a_Binary_Distribution_Package" class="mw-headline"> Building a Binary Distribution Package </span> == TBD = <span id="Crucible_Known_Issues" class="mw-headline"> Crucible Known Issues </span> = [FIXED] == Undocking == There are some cases when the location is not stored in the Data Base and when you try to undock it will give a DB error in server log. * Workaround - Just select another station from the top left menu and transolacate there (tr command in right click menu) or choose another system from the map and do the same. == <span id="Right_click_on_ship_not_responding" class="mw-headline"> Right click on ship not responding </span> == * Workaround - Just undock and re-dock and this issue will go away. <br /> If you are having [[Server_Setup_Issues.html|Server Setup Issues]] look here. <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Crucible&quot; == This category contains only the following page. <div class="mw-content-ltr" lang="en" dir="ltr"> === C === * [[Crucible_FAQ.html|Crucible FAQ]] </div> </div> </div> </div> db0f2158be3f290a334da937c56f48d187d70923 Old Wiki:Category Escalation To Inferno 0 38 63 2021-04-03T14:16:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> '''The EVEmu project is a developing EVE Online server suite and as yet does not support most features offered in the game. It is compatible with Escalation v1.0.2 build 365966 client.''' <pre>THIS RELEASE IS A WORK IN PROGRESS AND HAS JUST BEGUN THE TESTING PHASES FOR COMPATABILITY WITH CURRENT EVEmu CRUCIBLE CODE BASE.</pre> <pre>THIS PAGE DOCUMENTATION WAS JUST COPIED OVER FROM CRUCIBLE AND NEEDS TO BE UPDATED AS THE TESTING PROGRESSES.</pre> '''EVEmu is an educational project. This means, our primary interest is to learn and teach us and our users more about C++ project development in a large scale. Our software is not intended for running public servers, and we do not support that. We are not responsible for what others do with the source code downloaded from this project.''' '''INFORMATION FOR LINUX:''' Currently it's not possible to build it under Linux. This will be fixed soon. {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Getting_the_Client|<span class="tocnumber">1</span> <span class="toctext">Getting the Client</span>]] * [[#Source_Code|<span class="tocnumber">2</span> <span class="toctext">Source Code</span>]] * [[#Server_setup|<span class="tocnumber">3</span> <span class="toctext">Server setup</span>]] ** [[#Getting_the_source_code|<span class="tocnumber">3.1</span> <span class="toctext">Getting the source code</span>]] *** [[#Windows|<span class="tocnumber">3.1.1</span> <span class="toctext">Windows</span>]] *** [[#Linux|<span class="tocnumber">3.1.2</span> <span class="toctext">Linux</span>]] ** [[#Compiling_with_CMake|<span class="tocnumber">3.2</span> <span class="toctext">Compiling with CMake</span>]] *** [[#Getting_the_dependencies|<span class="tocnumber">3.2.1</span> <span class="toctext">Getting the dependencies</span>]] **** [[#Windows_2|<span class="tocnumber">3.2.1.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_2|<span class="tocnumber">3.2.1.2</span> <span class="toctext">Linux</span>]] *** [[#Running_CMake|<span class="tocnumber">3.2.2</span> <span class="toctext">Running CMake</span>]] **** [[#Windows_3|<span class="tocnumber">3.2.2.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_3|<span class="tocnumber">3.2.2.2</span> <span class="toctext">Linux</span>]] *** [[#Compilation|<span class="tocnumber">3.2.3</span> <span class="toctext">Compilation</span>]] **** [[#Windows_4|<span class="tocnumber">3.2.3.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_4|<span class="tocnumber">3.2.3.2</span> <span class="toctext">Linux</span>]] *** [[#Debugging|<span class="tocnumber">3.2.4</span> <span class="toctext">Debugging</span>]] **** [[#Windows_5|<span class="tocnumber">3.2.4.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_5|<span class="tocnumber">3.2.4.2</span> <span class="toctext">Linux</span>]] *** [[#If_you_want_to_REBUILD_your_source_code|<span class="tocnumber">3.2.5</span> <span class="toctext">If you want to REBUILD your source code</span>]] ** [[#Database_Installation_Guide|<span class="tocnumber">3.3</span> <span class="toctext">Database Installation Guide</span>]] *** [[#Required_Software|<span class="tocnumber">3.3.1</span> <span class="toctext">Required Software</span>]] *** [[#Database_Setup|<span class="tocnumber">3.3.2</span> <span class="toctext">Database Setup</span>]] *** [[#Data_Import|<span class="tocnumber">3.3.3</span> <span class="toctext">Data Import</span>]] **** [[#Automated_SQL_Setup|<span class="tocnumber">3.3.3.1</span> <span class="toctext">Automated SQL Setup</span>]] **** [[#Manual_Execution_of_each_SQL_piece|<span class="tocnumber">3.3.3.2</span> <span class="toctext">Manual Execution of each SQL piece</span>]] *** [[#Adding_an_Account|<span class="tocnumber">3.3.4</span> <span class="toctext">Adding an Account</span>]] *** [[#If_you_have_to_REBUILD_your_Database|<span class="tocnumber">3.3.5</span> <span class="toctext">If you have to REBUILD your Database</span>]] ** [[#Server_Configuration|<span class="tocnumber">3.4</span> <span class="toctext">Server Configuration</span>]] *** [[#Directory_Setup|<span class="tocnumber">3.4.1</span> <span class="toctext">Directory Setup</span>]] *** [[#File_Setup|<span class="tocnumber">3.4.2</span> <span class="toctext">File Setup</span>]] **** [[#Database_Tag_Changes|<span class="tocnumber">3.4.2.1</span> <span class="toctext">Database Tag Changes</span>]] **** [[#Net_Tag_Changes|<span class="tocnumber">3.4.2.2</span> <span class="toctext">Net Tag Changes</span>]] **** [[#Files_Tag_Changes|<span class="tocnumber">3.4.2.3</span> <span class="toctext">Files Tag Changes</span>]] *** [[#Keeping_The_Server_Updated|<span class="tocnumber">3.4.3</span> <span class="toctext">Keeping The Server Updated</span>]] ** [[#Finishing_Notes|<span class="tocnumber">3.5</span> <span class="toctext">Finishing Notes</span>]] *** [[#Windows_6|<span class="tocnumber">3.5.1</span> <span class="toctext">Windows</span>]] *** [[#Linux_6|<span class="tocnumber">3.5.2</span> <span class="toctext">Linux</span>]] ** [[#FAQ|<span class="tocnumber">3.6</span> <span class="toctext">FAQ</span>]] * [[#Crucible_Development|<span class="tocnumber">4</span> <span class="toctext">Crucible Development</span>]] * [[#Crucible_Known_Issues|<span class="tocnumber">5</span> <span class="toctext">Crucible Known Issues</span>]] ** [[#Undocking|<span class="tocnumber">5.1</span> <span class="toctext">Undocking</span>]] ** [[#Right_click_on_ship_not_responding|<span class="tocnumber">5.2</span> <span class="toctext">Right click on ship not responding</span>]] |} == <span id="Getting_the_Client" class="mw-headline"> Getting the Client </span> == * http://www.mediafire.com/?27tdwa7k6fg8kay <br /> While Crucible is still available from CCP, you can go to [http://community.eveonline.com/download/?fallback=1 CCP's Offline Installer page] to get updated clients' full installers, then you can modify those three links to get back versions of Crucible by just substituting the six digit build version for the version you want. We believe that CCP has cut off earlier released full installers, so you won't be able to get them anymore. '''Grab Crucible builds whenever they come out because at some point, we will FREEZE evemu_crucible on a specific Crucible build!''' == <span id="Source_Code" class="mw-headline"> Source Code </span> == * https://github.com/evemuproject/evemu_crucible We currently have transitioned to [http://www.github.com/ GitHub] and have moved to Git SCM. '''(There are no binaries for the server provided, you want it, you build it from the source)''' = <span id="Server_setup" class="mw-headline"> Server setup </span> = There are 4 steps to get running the Server: # Getting the source code # Compiling with CMake # Database Setup # Server Configuration == <span id="Getting_the_source_code" class="mw-headline"> Getting the source code </span> == The best Git primer we've seen is a 1hr 40min video series [http://excess.org/article/2008/07/ogre-git-tutorial/ found here] You need a Git client in order to download the source. Windows users can download SmartGit, Linux users need to install the respective package (usually git). If you prefer to use Git via CMD, here is a good tutorial on how to do it. [http://help.github.com/linux-set-up-git/ Git-Linux] [http://help.github.com/win-set-up-git/ Git-Windows] '''NOTE:''' Use Git to pull down the source, I would recommend if you want to develop, create a Github account. Then you can fork from the main branch and develop from there. === <span id="Windows" class="mw-headline"> Windows </span> === Please load Smartgit and follow the on screen instructions to pull down the source from github. === <span id="Linux" class="mw-headline"> Linux </span> === You can use the gui from Linux or CMD Type following to the terminal: <span class="tex2jax_ignore"></span> <pre>$ mkdir ~/path/to/evemu/source $ cd ~/path/to/evemu/source Changes the current working directory to your newly created directory $ git initSets up the necessary Git files Initialized empty Git repository in /path/to/evemu/source/.git/ $ touch README $ git clone https://github.com/evemuproject/evemu_crucible.git</pre> == <span id="Compiling_with_CMake" class="mw-headline"> Compiling with CMake </span> == EVEmu can be built using [http://www.cmake.org/ CMake]: a tool designed to ease the whole process of compiling on various platforms. You can find further information about it on the homepage; here we'll concentrate only to how to use it to build EVEmu. === <span id="Getting_the_dependencies" class="mw-headline"> Getting the dependencies </span> === ==== <span id="Windows_2" class="mw-headline"> Windows </span> ==== * [http://www.cmake.org/cmake/resources/software.html CMake] - '''Please use [http://www.cmake.org/files/v2.8/ v2.8.2 found in older releases here], as we have had reports that newer versions are causing problems''' * [http://code.google.com/p/msysgit/downloads/list Git For Windows CMD] * [http://www.microsoft.com/express/download/ Visual Studio Express 2010] (Download the Offline install DVD) ** You may use Visual Studio 2008 as well if you dont have or dont want to use Visual Studio 2010 (Visual Studio 2008, does not contain the updated c++11 features needed) * [http://www.zlib.net/ zlib source code] * [http://downloads.mysql.com/archives/mysql-5.1/mysql-noinstall-5.1.53-win32.zip MySQL noinstall package] '''Please use mysql 5.1 to build, you can use 5.5 to run the actual db, but not to build.''' * [http://sourceforge.net/projects/boost/files/boost/1.46.1/ BOOST Library] '''Install:''' CMake, Git and Visual Studio. '''Extract:''' zlib, mysql-noinstall and boost somewhere convenient, but not in your git repository. '''Move:''' Content of extracted files to C:\evemu\zlib and C:\evemu\mysql respectably. '''WARNING:''' Don't move zlib-1.2.5 into C:\evemu\zlib. Only the contents of zlib-1.2.5. Same with MySql and boost. ==== <span id="Linux_2" class="mw-headline"> Linux </span> ==== * cmake * git * make * g++ * zlib, zlib-dev * libmysqlclient, libmysqlclient-dev * boost-build, libboost-dev '''NOTE:''' Just search your distro's repository for similarly named packages and install them. === <span id="Running_CMake" class="mw-headline"> Running CMake </span> === '''WARNING: Do NOT use SPACES in any part of your path to the EVEmu source code or any of its dependencies (libraries like boost, mysql, zlib, etc). Any spaces in the path will cause MASSIVE errors when you go to compile the software in your compiler. YOU HAVE BEEN WARNED!!''' ==== <span id="Windows_3" class="mw-headline"> Windows </span> ==== Create directory C:\evemu\build. Go to the directory where you have installed CMake, there should be subdirectory bin. Go in there and run cmake-gui.exe. In the new window in the upper part click Browse source and pick C:\evemu\source, then click Browse build and pick C:\evemu\build. After that click Configure in the lower part. Another dialog pops up, asking you to choose compilers and a generator. Choose Visual Studio 9 2008 or Visual Studio 10 2010 depending on which version you wish to use and have installed, then Use default native compilers and press Finish. CMake starts configuring your build, but it'll fail, because you haven't set several CMake variables yet. For each of the rows below, click the button Add Entry in the upper part, fill in the corresponding editboxes and click OK: Choose advance tab in cmake, The very first line should be Boost_include_DIR. Please update it to your path for Boost. <span class="tex2jax_ignore"></span> <pre>Name: CMAKE_SYSTEM_INCLUDE_PATH Type: PATH Value: C:\evemu\mysql\include;C:\evemu\zlib Name: CMAKE_SYSTEM_LIBRARY_PATH Type: PATH Value: C:\evemu\mysql\lib\opt Name: Boost_INCLUDE_DIR Type: PATH Value: C:\evemu\boost </pre> Now click Configure again and it should be fine. After configuration is done, click Generate and close the window. Finally, you can now open the EVEmu server solution in Visual Studio. Just make sure to open it in the same version of Visual Studio that you told CMake to use when you setup the CMake build. ==== <span id="Linux_3" class="mw-headline"> Linux </span> ==== Type: <span class="tex2jax_ignore"></span> <pre>mkdir path/to/evemu/build cd path/to/evemu/build cmake path/to/evemu/source</pre> If you want to configure the build manually, add -i flag: <span class="tex2jax_ignore"></span> <pre>cmake -i path/to/evemu/source</pre> This is particularly useful e.g. when you want to build a Debug binary. === <span id="Compilation" class="mw-headline"> Compilation </span> === ==== <span id="Windows_4" class="mw-headline"> Windows </span> ==== Browse to C:\evemu\build, there should be file evemu.sln. Double-click it and Visual Studio opens up. You can set it to two modes, 'Debug' or 'Release'. Either work, but the size of the exe file is bigger on debug but slightly more stable. In the left part, right-click Solution evemu and click Build solution. Compilation should start. ==== <span id="Linux_4" class="mw-headline"> Linux </span> ==== Type: <span class="tex2jax_ignore"></span> <pre>cd path/to/evemu/build make</pre> If you want to make use of a multicore CPU, specify number of cores with -j option. For example, if you had quad-core CPU, you'd type: <span class="tex2jax_ignore"></span> <pre>make -j4</pre> === <span id="Debugging" class="mw-headline"> Debugging </span> === These instructions will help you surmount the common problems when setting up your system to debug EVEmu server code. ==== <span id="Windows_5" class="mw-headline"> Windows </span> ==== # Open the evemu project in Visual Studio. # To do FULL Rebuilds of entire project, select '''ALL_BUILD''' at the top of the list in '''Solution Explorer''', then either hit Ctrl+Alt+F7 key or click Build -&gt; Rebuild Solution from the menu bar. # To compile sub-projects by themselves, such as '''eve-server''', then select that sub-project in '''Solution Explorer''', then hit F7 for a Build or Ctrl+Alt+F7 for a Rebuild or access either from the Build menu on the menu bar. # To set the project for '''Debugging''', find the drop down box on the toolbar that is either going to have '''Release''' or'''Debug''' inside. If it says '''Debug''' you are good to go, just to a FULL rebuild of the whole project. If it says'''Release''', click on it then select '''Debug''', then do a FULL rebuild of the whole project. # To RUN eve-server after you have built it under '''Debug''', follow these steps: ## Right-click on '''eve-server''' in the '''Solution Explorer''' and select '''Properties''' ## Expand '''Configuration Properties''' and click '''Debugging''' ## Put the text '''Debug''' in the field called '''Working Directory''', then click the '''OK''' button ## Now, navigate to your server project source root directory, then drill down to this sub-folder: '''build\src\eve-server''' ## Make a new folder called '''etc''' and put your '''eve-server.xml''' file in that new '''etc''' folder. You can copy and modify the provided example eve-server.xml found inside the /utils subdirectory off the root of the source tree. ## Back in Visual Studio, right click on '''eve-server''' again in the '''Solution Explorer''' and select '''Set as StartUp Project''', the '''eve-server''' tree label will now be bold to indicate this change ## You can now hit F5 to execute the debug build .exe or click Debug -&gt; Start Debugging from the menu bar. ==== <span id="Linux_5" class="mw-headline"> Linux </span> ==== Sorry, need to be written === <span id="If_you_want_to_REBUILD_your_source_code" class="mw-headline"> If you want to REBUILD your source code </span> === Whenever you update your source code working tree from the github repository, add files to the project (which requires adding them to the CMakeLists.txt files), or change one of the .xmlp files found in /src/eve-common/packets/xmlp, you MUST do a full REBUILD of your source code to ensure that all changes and new files are made available to the compiler. Here's how you do that: REBUILD source: This is simply accomplished by closing Visual Studio, opening CMake, clicking Configure twice, then Generate once, and finally opening Visual Studio again. Now, you need to right-click on the ALL_BUILD project, and click Rebuild. This will rebuild your entire source code from scratch using any new files or modified packet xmlp files that were added/modified by either you or whomever pushed changes to the github repository that you just pulled down. == <span id="Database_Installation_Guide" class="mw-headline"> Database Installation Guide </span> == '''NOTE:''' This guide assumes directory structure created in compiling with cmake guide. === <span id="Required_Software" class="mw-headline"> Required Software </span> === * [http://dev.mysql.com/downloads/mysql/5.1.html#win32 MySQL Server 5.1] (It's recommend downloading the Windows Essentials installer, as it is all that is needed) * [http://dl.eve-files.com/media/1201/cru11-mysql5-innoDB-v1.7z Crucible v1.1 Official DB dump] ** As of [2012-03-24], CCP's most recent release of the Database Dump is Crucible 1.1 build 334471, '''therefore we use this''' === <span id="Database_Setup" class="mw-headline"> Database Setup </span> === Download and install the latest stable version of MySQL 5.1 from the link above. Extract the dowloaded database dump to directory C:\evemu\source\sql. Browse into C:\evemu\source\sql\utils. '''If you are on Windows:''' In the '''/sql/utils/''' directory, Execute merge-ofic-updates.bat. '''If you are on Linux:''' In the '''/sql/utils/''' directory, Execute merge-ofic-updates.sh. This should create new file called ofic-updates.sql in parent directory sql. Now, you'll have these .sql files in the /sql directory: * cru11-mysql5-innoDB-v1.sql * evemu_dynamic-dump.sql * evemu_static-dump.sql * ofic-updates.sql * prime_db.sql * ./evemu-updates/liveupdates.sql '''NOTE:''' cru11-mysql5-innoDB-v1.sql is the biggest sql and takes the longest to write into the database, over 460 MB import. === <span id="Data_Import" class="mw-headline"> Data Import </span> === '''IMPORTANT:''' Paths should use / instead of \ Click Start -&gt; All Programs -&gt; MySQL -&gt; MySQL Server 5.1 then MySQL Command Line Client. The MySQL Command Line Client will open, you will need to enter your MySQL database root password. '''OR''' you may run a command prompt from the /sql directory and run mysql in that prompt like this: <span class="tex2jax_ignore"></span> <pre>C:\evemu\source\sql&gt; mysql -u &lt;username&gt; -p</pre> where '''&lt;username&gt;''' is your mysql database username, then type the password and hit enter. You will see a &quot;mysql&gt;&quot; prompt, now you can create database and source the sql files using instructions below. You will now need to create the EVEmu database, to do this type at the mysql command prompt: <span class="tex2jax_ignore"></span> <pre>create database evemu;</pre> Now hit enter, it should tell you that was successful by saying: <span class="tex2jax_ignore"></span> <pre>Query OK, 1 row affected.</pre> After each query is completed it will display mysql&gt; - at this point simply run the next one. ==== <span id="Automated_SQL_Setup" class="mw-headline"> Automated SQL Setup </span> ==== '''NOTE: It is highly recommended to run the single &quot;evemu_database_setup.sql&quot; file, which contains the sql queries in the list below, however, you first need to copy the &quot;cru11-mysql5-innoDB-v1.sql&quot; file into the /sql dir of the source, where the other sql files are located, then run the following shorter sequence of mysql commands:''' <span class="tex2jax_ignore"></span> <pre>use evemu; source C:/evemu/source/sql/evemu_setup_database.sql;</pre> '''If this completes without errors, your database is completely setup. Now, proceed to &quot;Final Checking of Database Integrity&quot;.''' ==== <span id="Manual_Execution_of_each_SQL_piece" class="mw-headline"> Manual Execution of each SQL piece </span> ==== '''RECOMMENDED ONLY FOR ADVANCED USERS AND DEVELOPERS. IF YOU ARE NEW, USE THE INSTRUCTIONS ABOVE UNDER &quot;Automated SQL Setup&quot;''' Now to import the actual data... to do this you'll need to use the following queries (each line is a separate query - '''don't execute them all at once!'''): <span class="tex2jax_ignore"></span> <pre>use evemu; source C:/evemu/source/sql/cru11-mysql5-innoDB-v1.sql; source C:/evemu/source/sql/ofic-updates.sql; source C:/evemu/source/sql/evemu_static-dump.sql; source C:/evemu/source/sql/evemu_dynamic-dump.sql; source C:/evemu/source/sql/prime_db.sql; source C:/evemu/source/sql/liveupdates.sql;</pre> === <span id="Adding_an_Account" class="mw-headline"> Adding an Account </span> === This is really simple... just type the following: <span class="tex2jax_ignore"></span> <pre>INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0);</pre> Simply make sure to replace your_account_name and your_password with what you want your username and password to be! If you are new to MySQL command line, you can try using Navicat Lite http://www.wizdownloads.com/download/Windows/navicat-lite/ it has an easy to use interface. === <span id="If_you_have_to_REBUILD_your_Database" class="mw-headline"> If you have to REBUILD your Database </span> === If you somehow corrupt your database or the server does it as a result of a crash or wrong SQL query in the code, or you need to rebuild it due to development actions taken that modified SQL files found in the source's /sql directory, here's what we mean by &quot;REBUILD&quot;: REBUILD database: This is simply &quot;dropping&quot; the entire evemu database in mysql, such that the database is completely deleted, as in, the database name is no longer visible or accessible. Then, the database is built again from scratch by first creating a new database with the name you used before, switching to that database and running the &quot;evemu_setup_database.sql&quot; file on it. So, this basically means that you proceed directly to the &quot;Data Import&quot; section above on this page AFTER you have DROPPED your complete database from MySQL either using a MySQL client to do it (phpmyadmin, navicat, MySQL Workbench, etc) or by using the mysql command line as follows: <span class="tex2jax_ignore"></span> <pre>mysql&gt; drop database evemu;</pre> '''WARNING: MySQL does NOT prompt you on the command line, when you hit enter, it's too late, no going back. So, if you NEED to backup your database, do an export of the whole thing first.''' == <span id="Server_Configuration" class="mw-headline"> Server Configuration </span> == '''NOTE:''' This guide assumes directory structure created in Compiling with CMake guide. To get the server up and running correctly, you will need to put various files in the correct places, and make modifications to some of them. === <span id="Directory_Setup" class="mw-headline"> Directory Setup </span> === # Browse to C:\evemu, create the folders bin, etc, log and server_cache # Copy eve-server.exe from C:\evemu\build\src\eve-server to C:\evemu\bin # Copy libmysql.dll from C:\evemu\mysql\lib\opt to C:\evemu\bin # Copy eve-server.xml from C:\evemu\source\utils to C:\evemu\etc. === <span id="File_Setup" class="mw-headline"> File Setup </span> === Browse to C:\evemu\log and create empty text file named eve-server.log. Browse to C:\evemu\etc and create empty text file named log.ini '''OR''' use the sample log.ini file in the source code. After that go to C:\evemu\etc and open eve-server.xml in your favourite text editor, You will need to change 2 sets of setting(seperated by &lt;&gt; tags)(there are many optional settings to mess around, if you know what you are getting your hands into). '''Remember:''' Every set up is different so use your own setting and don't copy and paste! We will assume you have followed the previous step of setting up the database and we will go ahead and show an example of the needed changes: ==== <span id="Database_Tag_Changes" class="mw-headline"> Database Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;database&gt; &lt;host&gt;127.0.0.1&lt;/host&gt; &lt;username&gt;eve&lt;/username&gt; &lt;password&gt;eve&lt;/password&gt; &lt;db&gt;eve&lt;/db&gt; &lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt; &lt;/database&gt;</pre> Example: <span class="tex2jax_ignore"></span> <pre>&lt;database&gt; &lt;host&gt;127.0.0.1&lt;/host&gt; &lt;username&gt;root&lt;/username&gt; &lt;password&gt;password&lt;/password&gt; &lt;db&gt;evemu&lt;/db&gt; &lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt; &lt;/database&gt;</pre> '''NOTE:''' You will need to insert your own MySQL username and password '''NOTE:''' Please make sure a password is set or client will stop after trying to connect ==== <span id="Net_Tag_Changes" class="mw-headline"> Net Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;net&gt; &lt;!-- &lt;port&gt;26000&lt;/port&gt; --&gt; &lt;!-- &lt;imageServerPort&gt;26001&lt;/imageServerPort&gt; --&gt; &lt;!-- &lt;imageServer&gt;localhost&lt;/imageServer&gt; --&gt; &lt;!-- &lt;apiServerPort&gt;26002&lt;/apiServerPort&gt; --&gt; &lt;!-- &lt;apiServer&gt;localhost&lt;/apiServer&gt; --&gt; &lt;/net&gt;</pre> Example(Must be 26000): <span class="tex2jax_ignore"></span> <pre>&lt;net&gt; &lt;port&gt;26000&lt;/port&gt; &lt;imageServerPort&gt;26001&lt;/imageServerPort&gt; &lt;imageServer&gt;localhost&lt;/imageServer&gt; &lt;apiServerPort&gt;26002&lt;/apiServerPort&gt; &lt;apiServer&gt;localhost&lt;/apiServer&gt; &lt;/net&gt;</pre> ==== <span id="Files_Tag_Changes" class="mw-headline"> Files Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;files&gt; &lt;!-- &lt;logDir&gt;../log/&lt;/logDir&gt; --&gt; &lt;!-- &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; --&gt; &lt;!-- &lt;cacheDir&gt;&lt;/cacheDir&gt; --&gt; &lt;/files&gt;</pre> Example: <span class="tex2jax_ignore"></span> <pre>&lt;files&gt; &lt;logDir&gt;../log/&lt;/logDir&gt; &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; &lt;cacheDir&gt;../server_cache&lt;/cacheDir&gt; &lt;/files&gt;</pre> The '''../log/eve-server.log''' will contain the text from the eve-server console window. The '''../etc/log.ini''' file contains settings to control how eve-server outputs messages to the log. We need more definition as to what goes in this file. Finally, the'''../server_cache''' directory is where the server will create files for all cached objects when the server starts up. '''NOTE:''' If any cached database tables change during server down-time, you MUST delete ALL cache files in this directory BEFORE starting up the server again. The server does not check to see if the tables changed. === <span id="Keeping_The_Server_Updated" class="mw-headline"> Keeping The Server Updated </span> === The Evemu core updates very often. To keep your server up to date with the current Evemu revision; you must perform a simple core update and recompile. # Use your favorite git gui or the git command line to keep your source up to date # Re-run CMake just in case new files were added or old files were removed. # You must now rebuild you solution to actually see the changes in game. # Run the &quot;evemu&quot; sln with C++ and rebuild the solution '''MUST BE SET ON 'DEBUG' or 'RELEASE' (the question of your choise - for now is just a size of exe file on exit. No any stability or workability differences for now,except of some crashes,caused by svcerror and beancount errors on release binary.''' == <span id="Finishing_Notes" class="mw-headline"> Finishing Notes </span> == === <span id="Windows_6" class="mw-headline"> Windows </span> === Then you should be able to run eve-server.exe to start the server. The server log will be stored in C:\evemu\log\eve-server.log if you need it. Wait for the message : &quot;Init Done&quot; before initiating any action associated with the server(Even opening a client). [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 See here] for an old forum thread that discusses eve-server restart scripts in the cases where the server crashes, somewhere down the page is a script for windows. === <span id="Linux_6" class="mw-headline"> Linux </span> === You can just run the eve-server executable in your build directory, or you can use a script to run it, even to restart it if it ever crashes. [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 Here is a forum thread] that lists several different scripts on how the eve-server can be restarted if it crashes. == <span id="FAQ" class="mw-headline"> FAQ </span> == You will find it under [[Crucible_FAQ.html|Crucible FAQ]] = <span id="Crucible_Development" class="mw-headline"> Crucible Development </span> = Information will be soon here. = <span id="Crucible_Known_Issues" class="mw-headline"> Crucible Known Issues </span> = == <span id="Undocking" class="mw-headline"> Undocking </span> == There are some cases when the location is not stored in the Data Base and when you try to undock it will give a DB error in server log. * Workaround - Just select another station from the top left menu and transolacate there (tr command in right click menu) or choose another system from the map and do the same. == <span id="Right_click_on_ship_not_responding" class="mw-headline"> Right click on ship not responding </span> == * Workaround - Just undock and re-dock and this issue will go away. <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 6fcafb445b017551a4eff31dd4bb30aea0e2a6be Old Wiki:Category EVE Database 0 39 64 2021-04-03T14:16:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / [[Getting_Started.html|Getting Started]] / '''EVE Database''' (you are here) |} <br /> = <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> = EVE needs a database running behind the scenes on the server to maintain and use all information needed for gameplay. CCP uses MSSQL to run their database but it is not free so EVEmu uses MySQL. Fortunately for us, many out of game tools use MySQL too so there are publicly available MySQL conversions of the CCP Static Data Dump that is released in MSSQL format. We primarily get these MySQL conversions from the [http://wiki.eve-id.net/CCP_Toolkit_Release_History EVE Developer Network - Static Data Dump History page]. Instructions on how to build the database can be found on our [[Build_Database.html|Build_Database]] page. = <span id="EVEmu_Database_Tools" class="mw-headline"> EVEmu Database Tools </span> = The EVEmu Database is quite extensive and difficult to navigate or work with, so the EVEmu team has developed some tools to use that make this job easier. There was a [[EVEmu_Control_Panel.html|EVEmu_Control_Panel]] created to help make seeding the market, editing/deleting/adding in-game item types, creating/editing/deleting characters and accounts, etc adding asteroid fields and other features more convenient for developers wishing to populate their universe. = <span id="EVEmu_Database_Layout" class="mw-headline"> EVEmu Database Layout </span> = <div class="floatright"> [[File_Dbo_001.html|[[File:../images/thumb/7/72/Dbo_001.png/360px-Dbo_001.png|360x292px|Dbo 001.png]]]] </div> The Eve Online Database is extremely large and complex. The following is a visual representation of the public data CCP has released. This is based from an older version of the database and no longer applies to modern iterations. The EVEmu Database has more tables and more relationships than displayed here. Download the relationships here: [[File_Dbo_002.html|File:Dbo 002.pdf]] <br /> == <span id="Ideas_for_the_Future" class="mw-headline"> Ideas for the Future </span> == * It would speed up DB queries quite a bit if we split the '''entity''' and '''entity_attributes''' tables into multiple pairs for each major object type in the game. For example, we could have a pair of these tables that only holds ships and drones called '''entity_ships''' and '''entity_ships_attributes'''. Another pair could exist for just POS structures called '''entity_structures''' and '''entity_structures_attributes'''. Here is a comprehensive, although probably incomplete, list of the different groups requiring their own pair of these two tables: ** Characters and Clones ** Ships and Drones ** Modules and Charges ** Asteroids ** Celestial objects ** Structures ** Deployables ** Cargo Containers ** Stations (player and NPC) ** Corp items === <span id="Possible_Structure_layout" class="mw-headline"> Possible Structure layout </span> === '''entity_ships''' '''entity_ship_attributes''' * Ships 6 * Drones 18 <br /> '''entity_items''' '''entity_items_attributes''' * material 4 * blueprint 9 * ancient relics 34 * reaction 24 * commodity 17 <br /> '''entity_modules''' '''entity_modules_attributes''' * module 7 * charges 8 * subsystem 32 * decrypters 35 <br /> '''entity_structure''' '''entity_structure_attributes''' * structure 23 * deployable 22 * station 3 The addition of a table for redeemable items. Items that are 'gifted' to players that may be allocated to a character prior to character selection (but may also be done in game) Fields may include (but not limited to) AccountID, typeID, Quantity, Timegiven, TimeStop AccountID - The account with the item(s) in question typeID - the typeID of the item Quantity - The quantity avaliable Timegiven - The time the item(s) were given to the player TimeElapse- The time the item(s) will be removed from redemption. <br /> '''TODO: Describe each table that is added by EVEmu, its fields and what it's used for''' * accountApi * dgmEffectsInfo * dgmEffectsActions * dgmShipBonusModifiers * dgmSkillBonusModifiers * dgmImplantBonusModifiers <br /> = <span id="EVEmu_Database_Tables" class="mw-headline"> EVEmu Database Tables </span> = This page would be huge if all tables were listed and their details of purpose, use, and fields were explained on this page, so for now, only the most important tables critical for server operations will be explained here. == <span id="Important_Interesting_Tables" class="mw-headline"> Important Interesting Tables </span> == * account - this table lists each account (not characters, see the '''entity''' table below), their user id and password (encrypted) * character_ - this table lists each character in the game, their wallet balance, the account that owns them, bounty, sec. status, corp ID, all roles info, and the character's toon creation data (hair, clothes, eyes, morph, etc.) * chrskillqueue - this table stores all characters' skill queue contents; there are fields that indicate skill type and order in the queue as well as the character ID that owns that skill queue entry * chrstandings - this table stores standings from characters to other characters * crpcharshares - this table stores the amount of corporation shares that each character owns in their respective corporation(s) * entity - this table lists all npc and real characters and their location. more importantly, it lists ALL characters' asset items everywhere in the game, their location, owner, quantities, and a few flags * entity_attributes - this table lists attributes of characters, i.e. charisma (id=164), intelligence (id=165), memory (id=166), perception (id=167), will power (id=168) * evemail - this table lists every evemail sent/received in-game, every detail is contained here except the contents of the message, that is stored in the '''evemaildetails''' table * evemaildetails - this table lists every evemail's message contents, the rest of the details of each evemail are stored in the '''evemail''' table * market_journal - this table contains all the data that is shown in the player's Journal tab of the Wallet (player and npc transactions) * market_orders - this table contains all the orders that the players have made inside the eve universe * market_transactions - this table contains all the transaction data that players make inside the eve market (player transactions) * npcstandings - this table stores standings from npc's to characters * roiddistribution - this table hold the asteroid belt makeup data, specifically what roids are to be spawn and in what frequency * spawnbounds - * spawngroupentities - * spawngroups - * spawns - = <span id="Complete_Table_Listing" class="mw-headline"> Complete Table Listing </span> = '''Please keep the same format if you edit this page''' {| | Table Field Name 1 | Table Field Name 2 | Table Field Name 3 |- | Field 1 Description | Field 2 Description | Field 3 Description |- | Link to Table | Links to Table | Links to Table |} * Note, not all fields will link to another table. <br /> == <span id="Accounts" class="mw-headline"> [[Accounts.html|Accounts]] </span> == This is a simple table. It holds you account information. || '''accountID''' || '''accountName''' || '''password''' || '''role''' || '''online''' || || this ties a number to your account, NO two accounts have the same number || this is the name you choose for your account, ie the login name || this is your password, it shows up encrypted in the database || this is the role of the account, ex: Admin, GM, normal Player. || simple, 0 means you are not online, 1 means you are online || <br /> [[EVEmu_Account_Roles.html|See here for details on how the role field is calculated]] == <span id="Accountid" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Accountid&action=edit&redlink=1 Accountid] </span> == This ties a number to your account, No 2 accounts have the same number. || '''accountName''' || '''Password''' || '''Role''' || '''Online''' || ||This is the name you choose for your account || This is your password, it shows up encrypted in the database. || This is the role of the account, ex: Admin, GM, normal Player. A number represents them. 2 = Normal Player 4294967231 = Super admin || Simple, 0 means you are not online, 1 means you are online. || <br /> == <span id="Agtagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtagents&action=edit&redlink=1 Agtagents] </span> == This has basic information about agents. <br /> || '''agentID''' || '''divisionID''' || '''corporationID''' || '''level''' || '''quality''' || '''agentTypeID''' || || Numerical Id for the agent || This is what division the agent works for, IE: Security, R%D... || Numerical ID for the corporation the agent is for || Pretty simple, Level of the agent || Quality of the agent || Type of agent you are dealing with, See agtagenttypes table for more info || == <span id="agtagenttypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtagenttypes&action=edit&redlink=1 agtagenttypes] </span> == This has basic structure for the types of agents. == <span id="agenttypeId" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=AgenttypeId&action=edit&redlink=1 agenttypeId] </span> == Numberical value id, this is referenced with next table agentType agentType - This is what each agent is, look below at table I have created, it is pretty self explanatory. || '''agentTypeID''' || '''agentType''' || || 1 || Nonagent || || 2 || Basicagent || || 3 || Tutorialagent || || 4 || Researchagent || || 5 || CONCORDagent || || 6 || Genericstorylinesissionagent || || 7 || Storylinemissionagent || || 8 || Eventmissionagent || || 9 || Factionalwarfareagent || || 10 || Epicarcagent || == <span id="Agtconfig" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtconfig&action=edit&redlink=1 Agtconfig] </span> == Refers agentId to level and quality == <span id="Agtmissiongroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtmissiongroups&action=edit&redlink=1 Agtmissiongroups] </span> == || '''corporationID''' || '''divisionID''' || '''level''' || '''= missionID''' || <br /> == <span id="agentmissions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agentmissions&action=edit&redlink=1 agentmissions] </span> == || '''missionID''' || '''missionName''' || '''missionLevel''' || '''missionTypeId''' || '''importantMission''' || <br /> == <span id="agtmissiontypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtmissiontypes&action=edit&redlink=1 agtmissiontypes] </span> == || '''missionTypeID''' || '''missionTypeName''' || <br /> == <span id="Agtoffergroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtoffergroups&action=edit&redlink=1 Agtoffergroups] </span> == || '''corporationID''' || '''divisionID''' || '''level''' || '''offered''' || == <span id="agtofferrequired" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtofferrequired&action=edit&redlink=1 agtofferrequired] </span> == || '''offerID''' || '''typeID''' || '''quantity''' || == <span id="agtofferreward" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtofferreward&action=edit&redlink=1 agtofferreward] </span> == || '''offerID''' || '''typeID''' || '''quantity''' || == <span id="agtoffers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtoffers&action=edit&redlink=1 agtoffers] </span> == || '''offerID''' || '''offerName''' || '''offerLevel''' || '''loyaltyPoints''' || '''requiredISK''' || '''rewardISK''' || '''offerText''' || '''offerAcceptedText''' || == <span id="agtresearchagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtresearchagents&action=edit&redlink=1 agtresearchagents] </span> == || '''agentID''' || '''typeID''' || == <span id="alliance_shortnames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Alliance_shortnames&action=edit&redlink=1 alliance_shortnames] </span> == == <span id="billspayable" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billspayable&action=edit&redlink=1 billspayable] </span> == || '''billID''' || '''billTypeId''' || '''debtorID''' || '''creditorID''' || '''amount''' || '''dueDateTime''' || '''interest''' || '''externalID''' || '''paid''' || '''externalID2''' || <br /> == <span id="billsreceivable" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billsreceivable&action=edit&redlink=1 billsreceivable] </span> == || '''billID''' || '''billTypeId''' || '''debtorID''' || '''creditorID''' || '''amount''' || '''dueDateTime''' || '''interest''' || '''externalID''' || '''paid''' || '''externalID2''' || == <span id="billtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billtypes&action=edit&redlink=1 billtypes] </span> == Simple, Links billtypeID to billTypeName , Number value to a Name || '''billTypeID''' || '''billTypeName''' || || 1 || Market Fine || || 2 || Rental Bill || || 3 || Broker Bill || || 4 || War Bill || || 5 || Alliance maintenance Bill || <br /> == <span id="Bloodlinetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Bloodlinetypes&action=edit&redlink=1 Bloodlinetypes] </span> == links bloodlineID to TypeID == <span id="Bookmarks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Bookmarks&action=edit&redlink=1 Bookmarks] </span> == this is where bookmarks in space should be created. <br /> == <span id="cachelocations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Cachelocations&action=edit&redlink=1 cachelocations] </span> == == <span id="cacheowners" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Cacheowners&action=edit&redlink=1 cacheowners] </span> == == <span id="channelchars" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channelchars&action=edit&redlink=1 channelchars] </span> == == <span id="channelmods" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channelmods&action=edit&redlink=1 channelmods] </span> == == <span id="channels" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channels&action=edit&redlink=1 channels] </span> == == <span id="channeltypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channeltypes&action=edit&redlink=1 channeltypes] </span> == == <span id="character" class="mw-headline"> [[Character.html|character_]] </span> == == <span id="characterstatic" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Characterstatic&action=edit&redlink=1 characterstatic] </span> == == <span id="chraccessories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chraccessories&action=edit&redlink=1 chraccessories] </span> == == <span id="chrancestries" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrancestries&action=edit&redlink=1 chrancestries] </span> == || '''ancestryID''' || '''ancestryName''' || '''bloodlineID''' || '''description''' || '''perception''' || willpower '''||''' charisma '''||''' memory '''||''' intelligence '''||''' graphicID '''||''' shortDescription '''||''' || Unique ID of ancestry, Should be primary Key || Name of ancestry || Bloodline in which ancestry belongs to. || Description of the Ancestry || Atrribute bonus for the ancestry - Perception || Atrribute bonus for the ancestry - Willpower || Atrribute bonus for the ancestry - Charisma || Atrribute bonus for the ancestry - Memory || Atrribute bonus for the ancestry - Intelligence || Icon for this ancestry || Short Description of ancestry || <br /> == <span id="chrapplications" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrapplications&action=edit&redlink=1 chrapplications] </span> == == <span id="chrattributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrattributes&action=edit&redlink=1 chrattributes] </span> == The attributeID's for the characters attributes. == <span id="chrbackgrounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbackgrounds&action=edit&redlink=1 chrbackgrounds] </span> == == <span id="chrbeards" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbeards&action=edit&redlink=1 chrbeards] </span> == == <span id="chrblaccessories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblaccessories&action=edit&redlink=1 chrblaccessories] </span> == == <span id="chrblbackgrounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblbackgrounds&action=edit&redlink=1 chrblbackgrounds] </span> == == <span id="chrblbeards" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblbeards&action=edit&redlink=1 chrblbeards] </span> == == <span id="chrblcostumes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblcostumes&action=edit&redlink=1 chrblcostumes] </span> == == <span id="chrbldecos" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbldecos&action=edit&redlink=1 chrbldecos] </span> == == <span id="chrbleyebrows" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbleyebrows&action=edit&redlink=1 chrbleyebrows] </span> == == <span id="chrbleyes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbleyes&action=edit&redlink=1 chrbleyes] </span> == == <span id="chrblhairs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblhairs&action=edit&redlink=1 chrblhairs] </span> == == <span id="chrbllights" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbllights&action=edit&redlink=1 chrbllights] </span> == == <span id="chrbllipsticks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbllipsticks&action=edit&redlink=1 chrbllipsticks] </span> == == <span id="chrblmakeups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblmakeups&action=edit&redlink=1 chrblmakeups] </span> == == <span id="chrbloodlines" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbloodlines&action=edit&redlink=1 chrbloodlines] </span> == == <span id="chrblskins" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblskins&action=edit&redlink=1 chrblskins] </span> == == <span id="chrcareers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcareers&action=edit&redlink=1 chrcareers] </span> == == <span id="chrcareerspecialities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcareerspecialities&action=edit&redlink=1 chrcareerspecialities] </span> == == <span id="chrcostumes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcostumes&action=edit&redlink=1 chrcostumes] </span> == == <span id="chrdecos" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrdecos&action=edit&redlink=1 chrdecos] </span> == == <span id="chrdepartments" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrdepartments&action=edit&redlink=1 chrdepartments] </span> == == <span id="chremployment" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chremployment&action=edit&redlink=1 chremployment] </span> == == <span id="chreyebrows" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chreyebrows&action=edit&redlink=1 chreyebrows] </span> == == <span id="chreyes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chreyes&action=edit&redlink=1 chreyes] </span> == == <span id="chrfactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrfactions&action=edit&redlink=1 chrfactions] </span> == == <span id="chrhairs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrhairs&action=edit&redlink=1 chrhairs] </span> == == <span id="chrlights" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrlights&action=edit&redlink=1 chrlights] </span> == == <span id="chrlipsticks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrlipsticks&action=edit&redlink=1 chrlipsticks] </span> == == <span id="chrmakeups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrmakeups&action=edit&redlink=1 chrmakeups] </span> == == <span id="chrmissionstate" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrmissionstate&action=edit&redlink=1 chrmissionstate] </span> == == <span id="chrnotes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrnotes&action=edit&redlink=1 chrnotes] </span> == == <span id="chrnpcstandings" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrnpcstandings&action=edit&redlink=1 chrnpcstandings] </span> == == <span id="chroffers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chroffers&action=edit&redlink=1 chroffers] </span> == == <span id="chrownernote" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrownernote&action=edit&redlink=1 chrownernote] </span> == == <span id="chrraces" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrraces&action=edit&redlink=1 chrraces] </span> == == <span id="chrraceskills" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrraceskills&action=edit&redlink=1 chrraceskills] </span> == == <span id="chrschoolagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrschoolagents&action=edit&redlink=1 chrschoolagents] </span> == == <span id="chrschools" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrschools&action=edit&redlink=1 chrschools] </span> == List of starting schools for new characters. == <span id="chrskillqueue" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrskillqueue&action=edit&redlink=1 chrskillqueue] </span> == == <span id="chrskins" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrskins&action=edit&redlink=1 chrskins] </span> == == <span id="chrstandings" class="mw-headline"> [[Chrstandings.html|chrstandings]] </span> == This is the relationship between the player and the NPC. == <span id="corporation" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation] </span> == Lists corporations and basic information. == <span id="corporationstatic" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Corporationstatic&action=edit&redlink=1 corporationstatic] </span> == == <span id="couriermissions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Couriermissions&action=edit&redlink=1 couriermissions] </span> == == <span id="crpactivities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpactivities&action=edit&redlink=1 crpactivities] </span> == == <span id="crpcharshares" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpcharshares&action=edit&redlink=1 crpcharshares] </span> == == <span id="crpnpccorporationdivisions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationdivisions&action=edit&redlink=1 crpnpccorporationdivisions] </span> == == <span id="crpnpccorporationresearchfields" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationresearchfields&action=edit&redlink=1 crpnpccorporationresearchfields] </span> == == <span id="crpnpccorporations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporations&action=edit&redlink=1 crpnpccorporations] </span> == == <span id="crpnpccorporationtrades" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationtrades&action=edit&redlink=1 crpnpccorporationtrades] </span> == == <span id="crpnpcdivisions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpcdivisions&action=edit&redlink=1 crpnpcdivisions] </span> == == <span id="crpnpctickernames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpctickernames&action=edit&redlink=1 crpnpctickernames] </span> == == <span id="crpoffices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpoffices&action=edit&redlink=1 crpoffices] </span> == == <span id="crtcategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtcategories&action=edit&redlink=1 crtcategories] </span> == || '''categoryID''' || '''description''' || '''catagoryName''' || || Unique ID of this catagory || Description of the catagory || Name of the catagory || <br /> == <span id="crtcertificates" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtcertificates&action=edit&redlink=1 crtcertificates] </span> == List of all certificates || '''certificateID''' || '''catagoryID''' || '''classID''' || '''grade''' || '''corpID''' || '''iconID''' || '''description''' || || Unique ID of the certificate. Should be primary Key || Catagory of the Certificate || Class of the certificate || Grade of the certificate. 1=basic, 2=standard, 3=improved, 5=elite, They cant count, they forgot 4. || Corporation of the certificate || Icon of the certificate || Description of the Certificate || || || crtCatergories.categoryID || crtClasses.classID || || crpNPCCorporations.corporationID || || || <br /> == <span id="crtclasses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtclasses&action=edit&redlink=1 crtclasses] </span> == || '''classID''' || '''description''' || '''className''' || || Unique ID of the class, should be primary key || Description of the class. || Name of the Class. || <br /> == <span id="crtrecommendations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtrecommendations&action=edit&redlink=1 crtrecommendations] </span> == || '''recommendationID''' || '''shipTypeID''' || '''certificateID''' || '''recommendationLevel''' || || Unique ID of recommendation, Should be primary key || typeID of ship || CertificateID of recommendation. || || || || invTypes.typeID || crtCertificates.certificateID || || <br /> == <span id="crtrelationships" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtrelationships&action=edit&redlink=1 crtrelationships] </span> == || '''relationshipID''' || '''parentID''' || '''parentTypeID''' || '''parentLevel''' || '''childID''' || || Unique ID of the relationship, Should be primary Key || CertificateID of the certificate || Links to skill in item table || Name of the class || CertificateID of certificates requiring the certificate || || || crtCertificates.certificateID || invTypes.typeID || || crtCertificates.certificateID || <br /> == <span id="dgmattributecategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmattributecategories&action=edit&redlink=1 dgmattributecategories] </span> == == <span id="dgmattributetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmattributetypes&action=edit&redlink=1 dgmattributetypes] </span> == == <span id="dgmeffects" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmeffects&action=edit&redlink=1 dgmeffects] </span> == == <span id="dgmEffectsInfo" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmEffectsInfo&action=edit&redlink=1 dgmEffectsInfo] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmEffectsInfo table Fields ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |} == <span id="dgmEffectsActions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmEffectsActions&action=edit&redlink=1 dgmEffectsActions] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmEffectsActions table Fields ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |} == <span id="dgmShipBonusModifiers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmShipBonusModifiers&action=edit&redlink=1 dgmShipBonusModifiers] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmShipBonusModifiers table Fields ! effectID ! attributeSkillID ! attributeSkillLevel ! sourceAttributeID ! targetAttributeID ! calculationTypeID ! reverseCalculationTypeID ! effectAppliedTo ! targetEquipmentType ! targetGroupIDs |} Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Type_Attribute_Modifiers|Type Attribute Modifiers Processing]]. <br /> == <span id="dgmSkillBonusModifiers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmSkillBonusModifiers&action=edit&redlink=1 dgmSkillBonusModifiers] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmSkillBonusModifiers table Fields ! effectID ! sourceAttributeID ! targetAttributeID ! calculationTypeID ! reverseCalculationTypeID ! effectAppliedTo ! targetEquipmentType ! targetGroupIDs |} Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Type_Attribute_Modifiers|Type Attribute Modifiers Processing]]. == <span id="dgmtypeattributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmtypeattributes&action=edit&redlink=1 dgmtypeattributes] </span> == == <span id="dgmtypeeffects" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmtypeeffects&action=edit&redlink=1 dgmtypeeffects] </span> == == <span id="dronestate" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dronestate&action=edit&redlink=1 dronestate] </span> == == <span id="entity" class="mw-headline"> [[Entity.html|entity]] </span> == This details each individual thing in the game. From individual stack of items to planets to ships and npcs to attached modules and ammo. Characters and implants. It is all listed here. Refers to the [[Invtypes.html|invtypes]], [[Stastations.html|stastations]], [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] and [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] tables. == <span id="entity_attributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Entity_attributes&action=edit&redlink=1 entity_attributes] </span> == == <span id="eveconstants" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Eveconstants&action=edit&redlink=1 eveconstants] </span> == == <span id="evegraphics" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evegraphics&action=edit&redlink=1 evegraphics] </span> == == <span id="evemail" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemail&action=edit&redlink=1 evemail] </span> == == <span id="evemaildetails" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemaildetails&action=edit&redlink=1 evemaildetails] </span> == == <span id="evemailmimetype" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemailmimetype&action=edit&redlink=1 evemailmimetype] </span> == == <span id="evemessages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemessages&action=edit&redlink=1 evemessages] </span> == == <span id="evenames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evenames&action=edit&redlink=1 evenames] </span> == == <span id="everoles" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Everoles&action=edit&redlink=1 everoles] </span> == == <span id="evestaticlocations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evestaticlocations&action=edit&redlink=1 evestaticlocations] </span> == == <span id="evestaticowners" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evestaticowners&action=edit&redlink=1 evestaticowners] </span> == == <span id="eveunits" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Eveunits&action=edit&redlink=1 eveunits] </span> == == <span id="factionraces" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Factionraces&action=edit&redlink=1 factionraces] </span> == == <span id="intro" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Intro&action=edit&redlink=1 intro] </span> == == <span id="invblueprints" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invblueprints&action=edit&redlink=1 invblueprints] </span> == == <span id="invblueprinttypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invblueprinttypes&action=edit&redlink=1 invblueprinttypes] </span> == == <span id="invcategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcategories&action=edit&redlink=1 invcategories] </span> == == <span id="invcontrabandtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontrabandtypes&action=edit&redlink=1 invcontrabandtypes] </span> == == <span id="invcontroltowerresourcepurposes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontroltowerresourcepurposes&action=edit&redlink=1 invcontroltowerresourcepurposes] </span> == == <span id="invcontroltowerresources" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontroltowerresources&action=edit&redlink=1 invcontroltowerresources] </span> == == <span id="invflags" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] </span> == == <span id="invgroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invgroups&action=edit&redlink=1 invgroups] </span> == == <span id="invmarketgroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmarketgroups&action=edit&redlink=1 invmarketgroups] </span> == == <span id="invmetagroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmetagroups&action=edit&redlink=1 invmetagroups] </span> == == <span id="invmetatypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmetatypes&action=edit&redlink=1 invmetatypes] </span> == == <span id="invtypematerials" class="mw-headline"> [[Invtypematerials.html|invtypematerials]] </span> == Details the refining/reprocessing/manufacturing of items. Refers to the [[Invtypes.html|invtypes]] table. == <span id="invshiptypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invshiptypes&action=edit&redlink=1 invshiptypes] </span> == == <span id="invtypereactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invtypereactions&action=edit&redlink=1 invtypereactions] </span> == == <span id="invtypes" class="mw-headline"> [[Invtypes.html|invtypes]] </span> == Details basic information about game items, ships and other objects. Several tables refer to here. If you are interested in making new modules or ships you should start here. == <span id="invtypestowrecks" class="mw-headline"> [[Invtypestowrecks.html|invtypestowrecks]] </span> == Links the destroyed ships or structures to wrecks. It only refers to [[Invtypes.html|invtypes]]. == <span id="invuniquenames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invuniquenames&action=edit&redlink=1 invuniquenames] </span> == == <span id="languages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Languages&action=edit&redlink=1 languages] </span> == Languages used in EVE == <span id="liveupdates" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Liveupdates&action=edit&redlink=1 liveupdates] </span> == == <span id="locationscenes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Locationscenes&action=edit&redlink=1 locationscenes] </span> == == <span id="lprequireditems" class="mw-headline"> [[Lprequireditems.html|lprequireditems]] </span> == The items required to purchase (if applicable) at the LP Store. It has relationships to [[Invtypes.html|invtypes]] and [[Lpstore.html|lpstore]]. == <span id="lpstore" class="mw-headline"> [[Lpstore.html|lpstore]] </span> == What itemTypes appear listed in the store and where. It has relationships to [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [[Invtypes.html|invtypes]] and [[Lprequireditems.html|Lprequireditems]]. == <span id="lpverified" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Lpverified&action=edit&redlink=1 lpverified] </span> == Checks for the LPstore == <span id="maillabel" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maillabel&action=edit&redlink=1 maillabel] </span> == == <span id="mailmessage" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mailmessage&action=edit&redlink=1 mailmessage] </span> == == <span id="mapcelestialstatistics" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapcelestialstatistics&action=edit&redlink=1 mapcelestialstatistics] </span> == == <span id="mapconstellationjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapconstellationjumps&action=edit&redlink=1 mapconstellationjumps] </span> == == <span id="mapconstellations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapconstellations&action=edit&redlink=1 mapconstellations] </span> == == <span id="mapdenormalize" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapdenormalize&action=edit&redlink=1 mapdenormalize] </span> == == <span id="mapjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapjumps&action=edit&redlink=1 mapjumps] </span> == == <span id="maplandmarks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maplandmarks&action=edit&redlink=1 maplandmarks] </span> == == <span id="maplocationwormholeclasses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maplocationwormholeclasses&action=edit&redlink=1 maplocationwormholeclasses] </span> == == <span id="mapregionjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapregionjumps&action=edit&redlink=1 mapregionjumps] </span> == == <span id="mapregions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] </span> == == <span id="mapsolarsystemjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapsolarsystemjumps&action=edit&redlink=1 mapsolarsystemjumps] </span> == == <span id="mapsolarsystems" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] </span> == == <span id="mapuniverse" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapuniverse&action=edit&redlink=1 mapuniverse] </span> == == <span id="market_history_old" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_history_old&action=edit&redlink=1 market_history_old] </span> == == <span id="market_journal" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_journal&action=edit&redlink=1 market_journal] </span> == == <span id="market_keymap" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_keymap&action=edit&redlink=1 market_keymap] </span> == == <span id="market_orders" class="mw-headline"> [[Market_orders.html|market_orders]] </span> == This table is used to display market orders. It has relationships to [[Invtypes.html|invtypes]], [[Character.html|character_]], [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions], [[Stastations.html|stastations]] and [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems]. == <span id="market_reftypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_reftypes&action=edit&redlink=1 market_reftypes] </span> == == <span id="market_transactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_transactions&action=edit&redlink=1 market_transactions] </span> == == <span id="npcstandings" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Npcstandings&action=edit&redlink=1 npcstandings] </span> == == <span id="ramactivities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramactivities&action=edit&redlink=1 ramactivities] </span> == == <span id="ramassemblylines" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylines&action=edit&redlink=1 ramassemblylines] </span> == == <span id="ramassemblylinestationcostlogs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinestationcostlogs&action=edit&redlink=1 ramassemblylinestationcostlogs] </span> == == <span id="ramassemblylinestations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinestations&action=edit&redlink=1 ramassemblylinestations] </span> == == <span id="ramassemblylinetypedetailpercategory" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypedetailpercategory&action=edit&redlink=1 ramassemblylinetypedetailpercategory] </span> == == <span id="ramassemblylinetypedetailpergroup" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypedetailpergroup&action=edit&redlink=1 ramassemblylinetypedetailpergroup] </span> == == <span id="ramassemblylinetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypes&action=edit&redlink=1 ramassemblylinetypes] </span> == == <span id="ramcompletedstatuses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramcompletedstatuses&action=edit&redlink=1 ramcompletedstatuses] </span> == == <span id="raminstallationtypedefaultcontents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Raminstallationtypedefaultcontents&action=edit&redlink=1 raminstallationtypedefaultcontents] </span> == == <span id="ramjobs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramjobs&action=edit&redlink=1 ramjobs] </span> == == <span id="rentalinfo" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Rentalinfo&action=edit&redlink=1 rentalinfo] </span> == == <span id="roiddistribution" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Roiddistribution&action=edit&redlink=1 roiddistribution] </span> == == <span id="spawnbounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Spawnbounds&action=edit&redlink=1 spawnbounds] </span> == == <span id="spawngroupentries" class="mw-headline"> [[Spawngroupentries.html|spawngroupentries]] </span> == Table that controls the chance to spawn a particular NPC for a corporation. Links to [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [[Invtypes.html|invtypes]], [[Spawngroupentries.html|spawngroupentries]] and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. == <span id="spawngroups" class="mw-headline"> [[Spawngroups.html|spawngroups]] </span> == Links individual spawns together. Links to [[Spawngroupentries.html|spawngroupentries]] and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. == <span id="spawns" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns] </span> == == <span id="srvstatus" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Srvstatus&action=edit&redlink=1 srvstatus] </span> == == <span id="staoperations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staoperations&action=edit&redlink=1 staoperations] </span> == == <span id="staoperationservices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staoperationservices&action=edit&redlink=1 staoperationservices] </span> == == <span id="staservices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staservices&action=edit&redlink=1 staservices] </span> == == <span id="stastations" class="mw-headline"> [[Stastations.html|stastations]] </span> == Station information. Refers to the [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [http://wiki.evemu.dev/index.php?title=Stastationtypes&action=edit&redlink=1 stastationtypes], [http://wiki.evemu.dev/index.php?title=Mapconstellations&action=edit&redlink=1 mapconstellations], [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems], [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] and [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] tables. == <span id="stastationtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Stastationtypes&action=edit&redlink=1 stastationtypes] </span> == == <span id="trntranslationcolumns" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Trntranslationcolumns&action=edit&redlink=1 trntranslationcolumns] </span> == == <span id="trntranslations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Trntranslations&action=edit&redlink=1 trntranslations] </span> == == <span id="tutorial_categories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_categories&action=edit&redlink=1 tutorial_categories] </span> == == <span id="tutorial_criteria" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_criteria&action=edit&redlink=1 tutorial_criteria] </span> == == <span id="tutorial_page_criteria" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_page_criteria&action=edit&redlink=1 tutorial_page_criteria] </span> == == <span id="tutorial_pages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_pages&action=edit&redlink=1 tutorial_pages] </span> == == <span id="tutorials" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorials&action=edit&redlink=1 tutorials] </span> == == <span id="tutorials_criterias" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorials_criterias&action=edit&redlink=1 tutorials_criterias] </span> == == <span id="typeactivitymaterials" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Typeactivitymaterials&action=edit&redlink=1 typeactivitymaterials] </span> == = <span id="Miscellaneous_Info" class="mw-headline"> Miscellaneous Info </span> = == <span id="Skill_Points_-_Clone_Grades" class="mw-headline"> Skill Points - Clone Grades </span> == From dgmtypeattributes table: <br /> skillPointsSaved - &quot;Amount of skill points saved by clone&quot; maxJumpClones hasCloneJumpSlots allowsCloneJumpsWhenActive canReceiveCloneJumps jumpClonesLeft <br /> The first one must be for clone grade. I tried looking for something that stored the skill points accrued by each character, but i bet it doesn't exist and let me explain why: each skill that each character has injected and trained shows up in the entity table with the ownerID of that character, each one of those skills has two entries in the entity_attributes table under its itemID from the entity table: skillPoints and skillLevel. So, the client can figure out how many total skill points are trained if it has the list of skills and the points trained for each. This must mean that the first field in the list above has to be the skill points saved for whichever clone grade you've purchased using station medical services. <br /> Also, if you sort your entity table by ownerID ascending, you should see your primary character entry with an ownerID equal to your accountID in the account table. <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> f85dfe7f58edb32f1baa9e5807c9b0eceddb4506 Old Wiki:Category EVEmu API Server 0 40 65 2021-04-03T14:16:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Introduction|<span class="tocnumber">1</span> <span class="toctext">Introduction</span>]] * [[#Player_Tools|<span class="tocnumber">2</span> <span class="toctext">Player Tools</span>]] * [[#API_Service_Handlers|<span class="tocnumber">3</span> <span class="toctext">API Service Handlers</span>]] * [[#Creating_API_Account_and_using_it_in_Out_Of_Game_Player_Tools|<span class="tocnumber">4</span> <span class="toctext">Creating API Account and using it in Out Of Game Player Tools</span>]] ** [[#API_Service_Manager|<span class="tocnumber">4.1</span> <span class="toctext">API Service Manager</span>]] ** [[#API_Account_Manager|<span class="tocnumber">4.2</span> <span class="toctext">API Account Manager</span>]] *** [[#API_Key_Request|<span class="tocnumber">4.2.1</span> <span class="toctext">API Key Request</span>]] *** [[#Characters|<span class="tocnumber">4.2.2</span> <span class="toctext">Characters</span>]] *** [[#Account_Status|<span class="tocnumber">4.2.3</span> <span class="toctext">Account Status</span>]] ** [[#API_Admin_Manager|<span class="tocnumber">4.3</span> <span class="toctext">API Admin Manager</span>]] ** [[#API_Character_Manager|<span class="tocnumber">4.4</span> <span class="toctext">API Character Manager</span>]] *** [[#Character_Sheet|<span class="tocnumber">4.4.1</span> <span class="toctext">Character Sheet</span>]] *** [[#Skill_Queue|<span class="tocnumber">4.4.2</span> <span class="toctext">Skill Queue</span>]] *** [[#Skill_In_Training|<span class="tocnumber">4.4.3</span> <span class="toctext">Skill In Training</span>]] ** [[#API_Corporation_Manager|<span class="tocnumber">4.5</span> <span class="toctext">API Corporation Manager</span>]] ** [[#API_EVE_System_Manager|<span class="tocnumber">4.6</span> <span class="toctext">API EVE System Manager</span>]] ** [[#API_Map_Manager|<span class="tocnumber">4.7</span> <span class="toctext">API Map Manager</span>]] ** [[#API_Server_Manager|<span class="tocnumber">4.8</span> <span class="toctext">API Server Manager</span>]] *** [[#Server_Status|<span class="tocnumber">4.8.1</span> <span class="toctext">Server Status</span>]] |} = <span id="Introduction" class="mw-headline"> Introduction </span> = TBD <br /> = <span id="Player_Tools" class="mw-headline"> Player Tools </span> = EFT and EVEmon have been adapted to successfully connect and communicate with the EVEmu server. Specially adapted copies of these tools can be found in the utils/playertools/ directory under the project root. There is an '''eft''' folder and an '''evemon''' folder that contain the respective tools, modified for use with EVEmu's server port 64 for the API Server. <br /> = <span id="API_Service_Handlers" class="mw-headline"> API Service Handlers </span> = TBD * Admin Service * Account Service * Character Service * Market Service * Corp Service *  ? <br /> = <span id="Creating_API_Account_and_using_it_in_Out_Of_Game_Player_Tools" class="mw-headline"> Creating API Account and using it in Out Of Game Player Tools </span> = The normal way for players to manage their accounts' API server keys is via the [http://wiki.evemu.dev/index.php?title=EVEmu_Web_Portal&action=edit&redlink=1 EVEmu Web Portal]. See that page for details on how to use the web portal to create and manage API server keys. This section details the URL formats for creating and managing API server keys without the use of the web portal. Resources: * [http://wiki.eve-id.net/APIv2_Page_Index APIv2 Reference] - shows all possible things queryable and whether Limited/Full applies The most generic form of any HTTP GET URL used to communicate with EVEmu's API Server takes the form shown here: <pre>http://&lt;server_address&gt;:&lt;port&gt;/&lt;service&gt;/&lt;service_handler&gt;?&lt;param1&gt;=&lt;value1&gt;&amp;&lt;param2&gt;=&lt;value2&gt;&amp;&lt;param3&gt;=&lt;value3&gt;</pre> The number of &lt;param&gt;=&lt;value&gt; pairs is unlimited and must always be preceded by the &amp; character and the last pair must not end with the &amp; character. The following Services exist in the EVEmu API Server: {| !width="50%"| '''Service''' !width="50%"| '''Available Service Handlers''' |- | [[#API_Service_Manager|base]] | none |- | [[#API_Account_Manager|account]] | APIKeyRequest.xml.aspx<br /> Characters.xml.aspx<br /> AccountStatus.xml.aspx |- | [[#API_Admin_Manager|admin]] | none |- | [[#API_Character_Manager|char]] | CharacterSheet.xml.aspx<br /> SkillQueue.xml.aspx<br /> SkillInTraining.xml.aspx |- | [[#API_Corporation_Manager|corp]] | none |- | [[#API_EVE_System_Manager|eve]] | none |- | [[#API_Map_Manager|map]] | none |- | [[#API_Server_Manager|server]] | ServerStatus.xml.aspx |} <br /> == <span id="API_Service_Manager" class="mw-headline"> API Service Manager </span> == <br /> == <span id="API_Account_Manager" class="mw-headline"> API Account Manager </span> == === <span id="API_Key_Request" class="mw-headline"> API Key Request </span> === <pre>http://&lt;server_address&gt;:&lt;port&gt;/account/APIKeyRequest.xml.aspx?username=&lt;username&gt;&amp;password=&lt;password&gt;&amp;keytype=&lt;full|limited&gt;&amp;action=&lt;new|get&gt;</pre> === <span id="Characters" class="mw-headline"> Characters </span> === === <span id="Account_Status" class="mw-headline"> Account Status </span> === <br /> == <span id="API_Admin_Manager" class="mw-headline"> API Admin Manager </span> == <br /> == <span id="API_Character_Manager" class="mw-headline"> API Character Manager </span> == === <span id="Character_Sheet" class="mw-headline"> Character Sheet </span> === === <span id="Skill_Queue" class="mw-headline"> Skill Queue </span> === === <span id="Skill_In_Training" class="mw-headline"> Skill In Training </span> === <br /> == <span id="API_Corporation_Manager" class="mw-headline"> API Corporation Manager </span> == <br /> == <span id="API_EVE_System_Manager" class="mw-headline"> API EVE System Manager </span> == <br /> == <span id="API_Map_Manager" class="mw-headline"> API Map Manager </span> == <br /> == <span id="API_Server_Manager" class="mw-headline"> API Server Manager </span> == === <span id="Server_Status" class="mw-headline"> Server Status </span> === <br /> <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 62d1cb1750d779505c6d90f1afc5c75a3e38ed10 Old Wiki:Category EVEmu Development 0 41 66 2021-04-03T14:16:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / '''EVEmu Development''' (you are here) |} <br /> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVEmu_Development|<span class="tocnumber">1</span> <span class="toctext">EVEmu Development</span>]] ** [[#Getting_Started|<span class="tocnumber">1.1</span> <span class="toctext">Getting Started</span>]] ** [[#Tools|<span class="tocnumber">1.2</span> <span class="toctext">Tools</span>]] ** [[#Resources|<span class="tocnumber">1.3</span> <span class="toctext">Resources</span>]] ** [[#Community|<span class="tocnumber">1.4</span> <span class="toctext">Community</span>]] * [[#Documentation|<span class="tocnumber">2</span> <span class="toctext">Documentation</span>]] * [[#Projects|<span class="tocnumber">3</span> <span class="toctext">Projects</span>]] |} = <span id="EVEmu_Development" class="mw-headline"> EVEmu Development </span> = So, you want to develop for the EVEmu project, eh? Well great! We NEED as many experienced C++ coders as we can get. This page is your starting point for learning the code base, connecting with the community of developers, getting access to tools and resources you'll need to help develop for the EVEmu project. People new to developing with EVEmu should start with the [[#Getting_Started|Getting Started]] section. == <span id="Getting_Started" class="mw-headline"> Getting Started </span> == * [[Getting_Started.html|Getting Started]] * [[Development_Team.html|Development Team]] * [[Development_Practices.html|Development Practices]] * [[Source_Code.html|Source Code]] == <span id="Tools" class="mw-headline"> Tools </span> == '''[[Category_EVEmu_Tools.html|EVEmu Tools]]''' - main article on tools managed by and used by the EVEmu Developer team '''Popular tools used by EVEmu Developers:''' * [http://www.github.com/stschake/believe BeliEVE] - your tool to capture packets from EVEmu server as well as EVE live! * [[EVEmu_Control_Panel.html|EVEmu Control Panel]] - your friendly database viewer/changer tool == <span id="Resources" class="mw-headline"> Resources </span> == * [http://wiki.eve-id.net/Main_Page CCP's EVE-Development Network wiki] - info on API, DB dumps, 3rd party tools and APIs * [http://games.chruker.dk/eve_online/ Chruker's EVE Online section] - info on all types, NPCs, missions, arcs, math, CCP releases, random stuff - JUST CHECK IT OUT! == <span id="Community" class="mw-headline"> Community </span> == * [[Category_Testing_EVEmu.html|Testing EVEmu]] * [[EVEmu_Connect.html|Connect with EVEmu Community]] - IRC, Forums, Teamspeak = <span id="Documentation" class="mw-headline"> Documentation </span> = The EVEmu project has some documentation of various parts of the server code, the client configuration and the database structure as it relates to the EVEmu server itself, however, we always need more! Here is a list of the main places to start perusing what documentation we have and following that is a list of what we'd like to do in the future. If you want to help out contributing documentation to the project, see '''Aknor Jaden''' or '''Ozatomic''' either in IRC or the Forums to ask for a Wiki account of your own, then you can start contributing. * [[EVEmu_-_Client_connection_brief.html|EVEmu - Client connection brief]] * TODO: add list of documentation that exists now * packet schematics: every packet reverse engineered and described as to what it contains and how it's used by the server * some hypothesis or theory based on how Python Service works * a document referencing classes and objects in the codebase * a document/diagram describing the flow of execution in the server, from the top process to the bottom processes, explaining how each step works * some examples how people can change the code and produce expected results = <span id="Projects" class="mw-headline"> Projects </span> = * '''IN PROGRESS''' ** [[Category_Crucible.html|Crucible Server]] ** [[EVEmu_Control_Panel.html|EVEmu Control Panel]] ** [[Category_EVEmu_Web_Portal.html|Category:EVEmu Web Portal]] * ON HOLD ** [[Category_Incursion.html|Incursion Server]] ** [[Category_Apocrypha.html|Apocrypha Server]] <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> fbb69328d8618915a572710fc09b16b2b5ae4693 Old Wiki:Category EVEmu Tools 0 42 67 2021-04-03T14:16:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / '''EVEmu Tools''' (you are here) |} __NOTOC_ This page is the hub for the various tools either managed by or used by the [[Development_Team.html|EVEmu Project Team]]. {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVEmu_Control_Panel|<span class="tocnumber">1</span> <span class="toctext">EVEmu Control Panel</span>]] * [[#BeliEVE|<span class="tocnumber">2</span> <span class="toctext">BeliEVE</span>]] * [[#everadix|<span class="tocnumber">3</span> <span class="toctext">everadix</span>]] * [[#bluepatcher|<span class="tocnumber">4</span> <span class="toctext">bluepatcher</span>]] * [[#Eve-tool|<span class="tocnumber">5</span> <span class="toctext">Eve-tool</span>]] |} == <span id="EVEmu_Control_Panel" class="mw-headline"> [[EVEmu_Control_Panel.html|EVEmu Control Panel]] </span> == TBD == <span id="BeliEVE" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=BeliEVE&action=edit&redlink=1 BeliEVE] </span> == TBD == <span id="everadix" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Everadix&action=edit&redlink=1 everadix] </span> == TBD == <span id="bluepatcher" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Bluepatcher&action=edit&redlink=1 bluepatcher] </span> == TBD == <span id="Eve-tool" class="mw-headline"> [[Eve-tool.html|Eve-tool]] </span> == TBD <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 6f8fb94b639853c2e6a7b0f4f1760c323b98a438 Old Wiki:Category EVEmu Web Portal 0 43 68 2021-04-03T14:17:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> TBD <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 3720ce219644ab20ac460d389397971fdf08364e Old Wiki:Category Formatting Templates 0 44 69 2021-04-03T14:17:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Formatting Templates <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Formatting Templates&quot; == The following 2 pages are in this category, out of 2 total. <div class="mw-content-ltr" lang="en" dir="ltr"> === - === * [[Template_-.html|Template:-]] === C === * [[Template_Clear.html|Template:Clear]] </div> </div> </div> </div> 6fc41003791a79cddfedddbea77c4f59b6076c28 Old Wiki:Category Game Operation 0 45 70 2021-04-03T14:17:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / '''Game Operation''' (you are here) |} <br /> This category holds articles detailing the various features and operations that should be supported by the EVEmu server in the game, with specific notes as to how to implement those features in EVEmu. These articles are organized into large functional groups below. {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation|<span class="tocnumber">1</span> <span class="toctext">Disclaimer and List of Known Deviations from Official CCP EVE Online Operation</span>]] * [[#Essentials|<span class="tocnumber">2</span> <span class="toctext">Essentials</span>]] * [[#Combat|<span class="tocnumber">3</span> <span class="toctext">Combat</span>]] * [[#Organizations|<span class="tocnumber">4</span> <span class="toctext">Organizations</span>]] * [[#Industrial|<span class="tocnumber">5</span> <span class="toctext">Industrial</span>]] * [[#Exploration|<span class="tocnumber">6</span> <span class="toctext">Exploration</span>]] * [[#EVEmu_Original_Features|<span class="tocnumber">7</span> <span class="toctext">EVEmu Original Features</span>]] |} = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline"> Disclaimer and List of Known Deviations from Official CCP EVE Online Operation </span> = '''DISCLAIMER''' - TBD '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny warping and collisions are not going to be as accurately or exactly calculated as the eve client and official server since we do not have access to their exact math formulas used for these calculations. * All O.R.E. ships with exception of the Rorqual and the Orca have wrecks with typeIDs from '''invTypes''' table in the EVEmu database '''invTypesToWrecks''' table that are specific to Galente-specific wrecks, even though there are similar wrecks for all the other races. At this time, we have no idea why CCP has wrecks for the ORE ships for each race, but we're going to use Galente race wreck types for these ships. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> = <span id="EVEmu_Original_Features" class="mw-headline"> EVEmu Original Features </span> = * [http://wiki.evemu.dev/index.php?title=Category:PCP&action=edit&redlink=1 Player Controlled Players (PCP)] <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Game Operation&quot; == This category contains only the following page. <div class="mw-content-ltr" lang="en" dir="ltr"> === S === * [[Ship_Combat.html|Ship Combat]] </div> </div> </div> </div> 925ff357583c276f7b72f787eef67008271a0e9e Old Wiki:Category Incursion 0 46 71 2021-04-03T14:17:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> '''The EVEmu project is a developing EVE Online server suite and as yet does not support most features offered in the game. It is compatible with Incursion v1.6 build 264377 client.''' EVEmu is an educational project. This means, our primary interest is to learn and teach us and our users more about C++ project development in a large scale. Our software is not intended for running public servers, and we do not support that. We are not responsible for what others do with the source code downloaded from this project. '''INFORMATION FOR LINUX:''' Currently it's not possible to build it under Linux. This will be fixed soon. {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Source_Code|<span class="tocnumber">1</span> <span class="toctext">Source Code</span>]] * [[#Server_setup|<span class="tocnumber">2</span> <span class="toctext">Server setup</span>]] ** [[#Getting_the_source_code|<span class="tocnumber">2.1</span> <span class="toctext">Getting the source code</span>]] *** [[#Windows|<span class="tocnumber">2.1.1</span> <span class="toctext">Windows</span>]] *** [[#Linux|<span class="tocnumber">2.1.2</span> <span class="toctext">Linux</span>]] ** [[#Compiling_with_CMake|<span class="tocnumber">2.2</span> <span class="toctext">Compiling with CMake</span>]] *** [[#Getting_the_dependencies|<span class="tocnumber">2.2.1</span> <span class="toctext">Getting the dependencies</span>]] **** [[#Windows_2|<span class="tocnumber">2.2.1.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_2|<span class="tocnumber">2.2.1.2</span> <span class="toctext">Linux</span>]] *** [[#Running_CMake|<span class="tocnumber">2.2.2</span> <span class="toctext">Running CMake</span>]] **** [[#Windows_3|<span class="tocnumber">2.2.2.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_3|<span class="tocnumber">2.2.2.2</span> <span class="toctext">Linux</span>]] *** [[#Compilation|<span class="tocnumber">2.2.3</span> <span class="toctext">Compilation</span>]] **** [[#Windows_4|<span class="tocnumber">2.2.3.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_4|<span class="tocnumber">2.2.3.2</span> <span class="toctext">Linux</span>]] *** [[#Debugging|<span class="tocnumber">2.2.4</span> <span class="toctext">Debugging</span>]] **** [[#Windows_5|<span class="tocnumber">2.2.4.1</span> <span class="toctext">Windows</span>]] **** [[#Linux_5|<span class="tocnumber">2.2.4.2</span> <span class="toctext">Linux</span>]] *** [[#If_you_want_to_REBUILD_your_source_code|<span class="tocnumber">2.2.5</span> <span class="toctext">If you want to REBUILD your source code</span>]] ** [[#Database_Installation_Guide|<span class="tocnumber">2.3</span> <span class="toctext">Database Installation Guide</span>]] *** [[#Required_Software|<span class="tocnumber">2.3.1</span> <span class="toctext">Required Software</span>]] *** [[#Database_Setup|<span class="tocnumber">2.3.2</span> <span class="toctext">Database Setup</span>]] *** [[#Data_Import|<span class="tocnumber">2.3.3</span> <span class="toctext">Data Import</span>]] **** [[#Automated_SQL_Setup|<span class="tocnumber">2.3.3.1</span> <span class="toctext">Automated SQL Setup</span>]] **** [[#Manual_Execution_of_each_SQL_piece|<span class="tocnumber">2.3.3.2</span> <span class="toctext">Manual Execution of each SQL piece</span>]] *** [[#Final_Checking_of_Database_Integrity|<span class="tocnumber">2.3.4</span> <span class="toctext">Final Checking of Database Integrity</span>]] *** [[#Adding_an_Account|<span class="tocnumber">2.3.5</span> <span class="toctext">Adding an Account</span>]] *** [[#If_you_have_to_REBUILD_your_Database|<span class="tocnumber">2.3.6</span> <span class="toctext">If you have to REBUILD your Database</span>]] ** [[#Server_Configuration|<span class="tocnumber">2.4</span> <span class="toctext">Server Configuration</span>]] *** [[#Directory_Setup|<span class="tocnumber">2.4.1</span> <span class="toctext">Directory Setup</span>]] *** [[#File_Setup|<span class="tocnumber">2.4.2</span> <span class="toctext">File Setup</span>]] **** [[#Database_Tag_Changes|<span class="tocnumber">2.4.2.1</span> <span class="toctext">Database Tag Changes</span>]] **** [[#Net_Tag_Changes|<span class="tocnumber">2.4.2.2</span> <span class="toctext">Net Tag Changes</span>]] **** [[#Files_Tag_Changes|<span class="tocnumber">2.4.2.3</span> <span class="toctext">Files Tag Changes</span>]] *** [[#Keeping_The_Server_Updated|<span class="tocnumber">2.4.3</span> <span class="toctext">Keeping The Server Updated</span>]] ** [[#Finishing_Notes|<span class="tocnumber">2.5</span> <span class="toctext">Finishing Notes</span>]] *** [[#Windows_6|<span class="tocnumber">2.5.1</span> <span class="toctext">Windows</span>]] *** [[#Linux_6|<span class="tocnumber">2.5.2</span> <span class="toctext">Linux</span>]] ** [[#FAQ|<span class="tocnumber">2.6</span> <span class="toctext">FAQ</span>]] * [[#INCURSION_Development|<span class="tocnumber">3</span> <span class="toctext">INCURSION Development</span>]] |} == <span id="Source_Code" class="mw-headline"> Source Code </span> == * https://github.com/evemuproject/evemu_incursion We currently have transitioned to [http://www.github.com/ GitHub] and have moved to Git SCM. '''(There are no binaries for the server provided, you want it, you build it from the source)''' = <span id="Server_setup" class="mw-headline"> Server setup </span> = There are 4 steps to get running the Server: # Getting the source code # Compiling with CMake # Database Setup # Server Configuration == <span id="Getting_the_source_code" class="mw-headline"> Getting the source code </span> == The best Git primer we've seen is a 1hr 40min video series [http://excess.org/article/2008/07/ogre-git-tutorial/ found here] You need a Git client in order to download the source. Windows users can download SmartGit, Linux users need to install the respective package (usually git). If you prefer to use Git via CMD, here is a good tutorial on how to do it. [http://help.github.com/linux-set-up-git/ Git-Linux] [http://help.github.com/win-set-up-git/ Git-Windows] '''NOTE:''' Use Git to pull down the source, I would recommend if you want to develop, create a Github account. Then you can fork from the main branch and develop from there. === <span id="Windows" class="mw-headline"> Windows </span> === Please load Smartgit and follow the on screen instructions to pull down the source from github. === <span id="Linux" class="mw-headline"> Linux </span> === You can use the gui from Linux or CMD Type following to the terminal: <span class="tex2jax_ignore"></span> <pre>$ mkdir ~/path/to/evemu/source $ cd ~/path/to/evemu/source Changes the current working directory to your newly created directory $ git initSets up the necessary Git files Initialized empty Git repository in /path/to/evemu/source/.git/ $ touch README $ git clone https://github.com/evemuproject/evemu_incursion.git</pre> == <span id="Compiling_with_CMake" class="mw-headline"> Compiling with CMake </span> == EVEmu can be built using [http://www.cmake.org/ CMake]: a tool designed to ease the whole process of compiling on various platforms. You can find further information about it on the homepage; here we'll concentrate only to how to use it to build EVEmu. === <span id="Getting_the_dependencies" class="mw-headline"> Getting the dependencies </span> === ==== <span id="Windows_2" class="mw-headline"> Windows </span> ==== * [http://www.cmake.org/cmake/resources/software.html CMake] - '''Please use [http://www.cmake.org/files/v2.8/ v2.8.2 found in older releases here], as we have had reports that newer versions are causing problems''' * [http://code.google.com/p/msysgit/downloads/list Git For Windows CMD] * [http://www.microsoft.com/express/download/ Visual Studio Express 2010] (Download the Offline install DVD) ** You may use Visual Studio 2008 as well if you dont have or dont want to use Visual Studio 2010 * [http://www.zlib.net/ zlib source code] * [http://downloads.mysql.com/archives/mysql-5.1/mysql-noinstall-5.1.53-win32.zip MySQL noinstall package] '''Please use mysql 5.1 to build, you can use 5.5 to run the actual db, but not to build.''' * [http://sourceforge.net/projects/boost/files/boost/1.46.1/ BOOST Library] '''Install:''' CMake, Git and Visual Studio. '''Extract:''' zlib, mysql-noinstall and boost somewhere convenient, but not in your git repository. '''Move:''' Content of extracted files to C:\evemu\zlib and C:\evemu\mysql respectably. '''WARNING:''' Don't move zlib-1.2.5 into C:\evemu\zlib. Only the contents of zlib-1.2.5. Same with MySql and boost. ==== <span id="Linux_2" class="mw-headline"> Linux </span> ==== * cmake * git * make * g++ * zlib, zlib-dev * libmysqlclient, libmysqlclient-dev * boost-build, libboost-dev '''NOTE:''' Just search your distro's repository for similarly named packages and install them. === <span id="Running_CMake" class="mw-headline"> Running CMake </span> === '''WARNING: Do NOT use SPACES in any part of your path to the EVEmu source code or any of its dependencies (libraries like boost, mysql, zlib, etc). Any spaces in the path will cause MASSIVE errors when you go to compile the software in your compiler. YOU HAVE BEEN WARNED!!''' ==== <span id="Windows_3" class="mw-headline"> Windows </span> ==== Create directory C:\evemu\build. Go to the directory where you have installed CMake, there should be subdirectory bin. Go in there and run cmake-gui.exe. In the new window in the upper part click Browse source and pick C:\evemu\source, then click Browse build and pick C:\evemu\build. After that click Configure in the lower part. Another dialog pops up, asking you to choose compilers and a generator. Choose Visual Studio 9 2008 or Visual Studio 10 2010 depending on which version you wish to use and have installed, then Use default native compilers and press Finish. CMake starts configuring your build, but it'll fail, because you haven't set several CMake variables yet. For each of the rows below, click the button Add Entry in the upper part, fill in the corresponding editboxes and click OK: Choose advance tab in cmake, The very first line should be Boost_include_DIR. Please update it to your path for Boost. <span class="tex2jax_ignore"></span> <pre>Name: CMAKE_SYSTEM_INCLUDE_PATH Type: PATH Value: C:\evemu\mysql\include;C:\evemu\zlib Name: CMAKE_SYSTEM_LIBRARY_PATH Type: PATH Value: C:\evemu\mysql\lib\opt Name: Boost_INCLUDE_DIR Type: PATH Value: C:\evemu\boost </pre> Now click Configure again and it should be fine. After configuration is done, click Generate and close the window. Finally, you can now open the EVEmu server solution in Visual Studio. Just make sure to open it in the same version of Visual Studio that you told CMake to use when you setup the CMake build. ==== <span id="Linux_3" class="mw-headline"> Linux </span> ==== Type: <span class="tex2jax_ignore"></span> <pre>mkdir path/to/evemu/build cd path/to/evemu/build cmake path/to/evemu/source</pre> If you want to configure the build manually, add -i flag: <span class="tex2jax_ignore"></span> <pre>cmake -i path/to/evemu/source</pre> This is particularly useful e.g. when you want to build a Debug binary. === <span id="Compilation" class="mw-headline"> Compilation </span> === ==== <span id="Windows_4" class="mw-headline"> Windows </span> ==== Browse to C:\evemu\build, there should be file evemu.sln. Double-click it and Visual Studio opens up. You can set it to two modes, 'Debug' or 'Release'. Either work, but the size of the exe file is bigger on debug but slightly more stable. In the left part, right-click Solution evemu and click Build solution. Compilation should start. ==== <span id="Linux_4" class="mw-headline"> Linux </span> ==== Type: <span class="tex2jax_ignore"></span> <pre>cd path/to/evemu/build make</pre> If you want to make use of a multicore CPU, specify number of cores with -j option. For example, if you had quad-core CPU, you'd type: <span class="tex2jax_ignore"></span> <pre>make -j4</pre> === <span id="Debugging" class="mw-headline"> Debugging </span> === These instructions will help you surmount the common problems when setting up your system to debug EVEmu server code. ==== <span id="Windows_5" class="mw-headline"> Windows </span> ==== # Open the evemu project in Visual Studio. # To do FULL Rebuilds of entire project, select '''ALL_BUILD''' at the top of the list in '''Solution Explorer''', then either hit Ctrl+Alt+F7 key or click Build -&gt; Rebuild Solution from the menu bar. # To compile sub-projects by themselves, such as '''eve-server''', then select that sub-project in '''Solution Explorer''', then hit F7 for a Build or Ctrl+Alt+F7 for a Rebuild or access either from the Build menu on the menu bar. # To set the project for '''Debugging''', find the drop down box on the toolbar that is either going to have '''Release''' or '''Debug''' inside. If it says '''Debug''' you are good to go, just to a FULL rebuild of the whole project. If it says '''Release''', click on it then select '''Debug''', then do a FULL rebuild of the whole project. # To RUN eve-server after you have built it under '''Debug''', follow these steps: ## Right-click on '''eve-server''' in the '''Solution Explorer''' and select '''Properties''' ## Expand '''Configuration Properties''' and click '''Debugging''' ## Put the text '''Debug''' in the field called '''Working Directory''', then click the '''OK''' button ## Now, navigate to your server project source root directory, then drill down to this sub-folder: '''build\src\eve-server''' ## Make a new folder called '''etc''' and put your '''eve-server.xml''' file in that new '''etc''' folder ## Back in Visual Studio, right click on '''eve-server''' again in the '''Solution Explorer''' and select '''Set as StartUp Project''', the '''eve-server''' tree label will now be bold to indicate this change ## You can now hit F5 to execute the debug build .exe or click Debug -&gt; Start Debugging from the menu bar. ==== <span id="Linux_5" class="mw-headline"> Linux </span> ==== Sorry, need to be written === <span id="If_you_want_to_REBUILD_your_source_code" class="mw-headline"> If you want to REBUILD your source code </span> === Whenever you update your source code working tree from the github repository, add files to the project (which requires adding them to the CMakeLists.txt files), or change one of the .xmlp files found in /src/eve-common/packets/xmlp, you MUST do a full REBUILD of your source code to ensure that all changes and new files are made available to the compiler. Here's how you do that: REBUILD source: This is simply accomplished by closing Visual Studio, opening CMake, clicking Configure twice, then Generate once, and finally opening Visual Studio again. Now, you need to right-click on the ALL_BUILD project, and click Rebuild. This will rebuild your entire source code from scratch using any new files or modified packet xmlp files that were added/modified by either you or whomever pushed changes to the github repository that you just pulled down. == <span id="Database_Installation_Guide" class="mw-headline"> Database Installation Guide </span> == '''NOTE:''' This guide assumes directory structure created in compiling with cmake guide. === <span id="Required_Software" class="mw-headline"> Required Software </span> === * [http://dev.mysql.com/downloads/mysql/5.1.html#win32 MySQL Server 5.1] (It's recommend downloading the Windows Essentials installer, as it is all that is needed) * [http://eve.no-ip.de/inc15/inc15-mysql5-v1.sql.bz2 Incursion v1.5 Official DB dump] === <span id="Database_Setup" class="mw-headline"> Database Setup </span> === Download and install the latest stable version of MySQL 5.1 from the link above. Extract the dowloaded database dump to directory C:\evemu\source\sql. Browse into C:\evemu\source\sql\utils. '''If you are on Windows:''' In the '''/sql/utils/''' directory, Execute merge-ofic-updates.bat. '''If you are on Linux:''' In the '''/sql/utils/''' directory, Execute merge-ofic-updates.sh. This should create new file called ofic-updates.sql in parent directory sql. Now, you'll have these .sql files in the /sql directory: * inc15-mysql5-v1.sql * evemu_dynamic-dump.sql * evemu_static-dump.sql * ofic-updates.sql * prime_db.sql * ./evemu-updates/liveupdates.sql '''NOTE:''' inc15-mysql5-v1.sql is the biggest sql and takes the longest to write into the database, over 200 MB import. === <span id="Data_Import" class="mw-headline"> Data Import </span> === '''IMPORTANT:''' Paths should use / instead of \ Click Start -&gt; All Programs -&gt; MySQL -&gt; MySQL Server 5.1 then MySQL Command Line Client. The MySQL Command Line Client will open, you will need to enter your MySQL database root password. '''OR''' you may run a command prompt from the /sql directory and run mysql in that prompt like this: <span class="tex2jax_ignore"></span> <pre>C:\evemu\source\sql&gt; mysql -u &lt;username&gt; -p</pre> where '''&lt;username&gt;''' is your mysql database username, then type the password and hit enter. You will see a &quot;mysql&gt;&quot; prompt, now you can create database and source the sql files using instructions below. You will now need to create the EVEmu database, to do this type at the mysql command prompt: <span class="tex2jax_ignore"></span> <pre>create database evemu;</pre> Now hit enter, it should tell you that was successful by saying: <span class="tex2jax_ignore"></span> <pre>Query OK, 1 row affected.</pre> After each query is completed it will display mysql&gt; - at this point simply run the next one. ==== <span id="Automated_SQL_Setup" class="mw-headline"> Automated SQL Setup </span> ==== '''NOTE: It is highly recommended to run the single &quot;evemu_database_setup.sql&quot; file, which contains the sql queries in the list below, however, you first need to copy the &quot;inc15-mysql5-v1.sql&quot; file into the /sql dir of the source, where the other sql files are located, then run the following shorter sequence of mysql commands:''' <span class="tex2jax_ignore"></span> <pre>use evemu; source C:/evemu/source/sql/evemu_setup_database.sql;</pre> '''If this completes without errors, your database is completely setup. Now, proceed to &quot;Final Checking of Database Integrity&quot;.''' ==== <span id="Manual_Execution_of_each_SQL_piece" class="mw-headline"> Manual Execution of each SQL piece </span> ==== '''RECOMMENDED ONLY FOR ADVANCED USERS AND DEVELOPERS. IF YOU ARE NEW, USE THE INSTRUCTIONS ABOVE UNDER &quot;Automated SQL Setup&quot;''' Now to import the actual data... to do this you'll need to use the following queries (each line is a separate query - '''don't execute them all at once!'''): <span class="tex2jax_ignore"></span> <pre>use evemu; source C:/evemu/source/sql/inc15-mysql5-v1.sql; source C:/evemu/source/sql/ofic-updates.sql; source C:/evemu/source/sql/evemu_static-dump.sql; source C:/evemu/source/sql/evemu_dynamic-dump.sql; source C:/evemu/source/sql/prime_db.sql; source C:/evemu/source/sql/liveupdates.sql;</pre> === <span id="Final_Checking_of_Database_Integrity" class="mw-headline"> Final Checking of Database Integrity </span> === There are some final checks on your database that are highly recommended that you perform in order to ensure your database was 100% correctly setup in the previous steps. These are listed below: # Check the '''AUTO_INCREMENT''' value in the '''entity''' table to make sure it is set to this value: '''140000000'''. If it is not set to that value, change it to this value '''140000000'''. If you do not, you may experience a server crash when you make your first character, so DO check it and set it if it is not the correct value. A common error that you may encounter if you miss this step is something like this in the server console due to the fact that the '''AUTO_INCREMENT''' was not set and the last itemID was '''61000003''' or something. <span class="tex2jax_ignore"></span> <pre>InventoryDB::GetItem(..\..\..\src\eve-server\inventory\InventoryDB.cpp:471): Item 61000004 not found</pre> === <span id="Adding_an_Account" class="mw-headline"> Adding an Account </span> === This is really simple... just type the following: <span class="tex2jax_ignore"></span> <pre>INSERT INTO account (accountID, accountName, role, password, online, banned) VALUES(NULL, 'your_account_name', 5003499186008621056, 'your_password', 0, 0);</pre> Simply make sure to replace your_account_name and your_password with what you want your username and password to be! === <span id="If_you_have_to_REBUILD_your_Database" class="mw-headline"> If you have to REBUILD your Database </span> === If you somehow corrupt your database or the server does it as a result of a crash or wrong SQL query in the code, or you need to rebuild it due to development actions taken that modified SQL files found in the source's /sql directory, here's what we mean by &quot;REBUILD&quot;: REBUILD database: This is simply &quot;dropping&quot; the entire evemu database in mysql, such that the database is completely deleted, as in, the database name is no longer visible or accessible. Then, the database is built again from scratch by first creating a new database with the name you used before, switching to that database and running the &quot;evemu_setup_database.sql&quot; file on it. So, this basically means that you proceed directly to the &quot;Data Import&quot; section above on this page AFTER you have DROPPED your complete database from MySQL either using a MySQL client to do it (phpmyadmin, navicat, MySQL Workbench, etc) or by using the mysql command line as follows: <span class="tex2jax_ignore"></span> <pre>mysql&gt; drop database evemu;</pre> '''WARNING: MySQL does NOT prompt you on the command line, when you hit enter, it's too late, no going back. So, if you NEED to backup your database, do an export of the whole thing first.''' == <span id="Server_Configuration" class="mw-headline"> Server Configuration </span> == '''NOTE:''' This guide assumes directory structure created in Compiling with CMake guide. To get the server up and running correctly, you will need to put various files in the correct places, and make modifications to some of them. === <span id="Directory_Setup" class="mw-headline"> Directory Setup </span> === # Browse to C:\evemu, create the folders bin, etc, log and server_cache # Copy eve-server.exe from C:\evemu\build\src\eve-server to C:\evemu\bin # Copy libmysql.dll from C:\evemu\mysql\lib\opt to C:\evemu\bin # Copy eve-server.xml from C:\evemu\source\utils to C:\evemu\etc. === <span id="File_Setup" class="mw-headline"> File Setup </span> === Browse to C:\evemu\log and create empty text file named eve-server.log. Browse to C:\evemu\etc and create empty text file named log.ini '''OR''' use the sample log.ini file in the source code. After that go to C:\evemu\etc and open eve-server.xml in your favourite text editor, You will need to change 2 sets of setting(seperated by &lt;&gt; tags)(there are many optional settings to mess around, if you know what you are getting your hands into). '''Remember:''' Every set up is different so use your own setting and don't copy and paste! We will assume you have followed the previous step of setting up the database and we will go ahead and show an example of the needed changes: ==== <span id="Database_Tag_Changes" class="mw-headline"> Database Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;database&gt; &lt;host&gt;127.0.0.1&lt;/host&gt; &lt;username&gt;eve&lt;/username&gt; &lt;password&gt;eve&lt;/password&gt; &lt;db&gt;eve&lt;/db&gt; &lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt; &lt;/database&gt;</pre> Example: <span class="tex2jax_ignore"></span> <pre>&lt;database&gt; &lt;host&gt;127.0.0.1&lt;/host&gt; &lt;username&gt;root&lt;/username&gt; &lt;password&gt;password&lt;/password&gt; &lt;db&gt;evemu&lt;/db&gt; &lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt; &lt;/database&gt;</pre> '''NOTE:''' You will need to insert your own MySQL username and password '''NOTE:''' Please make sure a password is set or client will stop after trying to connect ==== <span id="Net_Tag_Changes" class="mw-headline"> Net Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;net&gt; &lt;!-- &lt;port&gt;26000&lt;/port&gt; --&gt; &lt;!-- &lt;imageServerPort&gt;26001&lt;/imageServerPort&gt; --&gt; &lt;!-- &lt;imageServer&gt;localhost&lt;/imageServer&gt; --&gt; &lt;!-- &lt;apiServerPort&gt;26002&lt;/apiServerPort&gt; --&gt; &lt;!-- &lt;apiServer&gt;localhost&lt;/apiServer&gt; --&gt; &lt;/net&gt;</pre> Example(Must be 26000): <span class="tex2jax_ignore"></span> <pre>&lt;net&gt; &lt;port&gt;26000&lt;/port&gt; &lt;imageServerPort&gt;26001&lt;/imageServerPort&gt; &lt;imageServer&gt;localhost&lt;/imageServer&gt; &lt;apiServerPort&gt;26002&lt;/apiServerPort&gt; &lt;apiServer&gt;localhost&lt;/apiServer&gt; &lt;/net&gt;</pre> ==== <span id="Files_Tag_Changes" class="mw-headline"> Files Tag Changes </span> ==== Default: <span class="tex2jax_ignore"></span> <pre>&lt;files&gt; &lt;!-- &lt;logDir&gt;../log/&lt;/logDir&gt; --&gt; &lt;!-- &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; --&gt; &lt;!-- &lt;cacheDir&gt;&lt;/cacheDir&gt; --&gt; &lt;/files&gt;</pre> Example: <span class="tex2jax_ignore"></span> <pre>&lt;files&gt; &lt;logDir&gt;../log/&lt;/logDir&gt; &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; &lt;cacheDir&gt;../server_cache&lt;/cacheDir&gt; &lt;/files&gt;</pre> The '''../log/eve-server.log''' will contain the text from the eve-server console window. The '''../etc/log.ini''' file contains settings to control how eve-server outputs messages to the log. We need more definition as to what goes in this file. Finally, the '''../server_cache''' directory is where the server will create files for all cached objects when the server starts up. '''NOTE:''' If any cached database tables change during server down-time, you MUST delete ALL cache files in this directory BEFORE starting up the server again. The server does not check to see if the tables changed. === <span id="Keeping_The_Server_Updated" class="mw-headline"> Keeping The Server Updated </span> === The Evemu core updates very often. To keep your server up to date with the current Evemu revision; you must perform a simple core update and recompile. # Use your favorite git gui or the git command line to keep your source up to date # Re-run CMake just in case new files were added or old files were removed. # You must now rebuild you solution to actually see the changes in game. # Run the &quot;evemu&quot; sln with C++ and rebuild the solution '''MUST BE SET ON 'DEBUG' or 'RELEASE' (the question of your choise - for now is just a size of exe file on exit. No any stability or workability differences for now,except of some crashes,caused by svcerror and beancount errors on release binary.''' == <span id="Finishing_Notes" class="mw-headline"> Finishing Notes </span> == '''WARNING:''' Tutorials are '''NON-functioning''' and '''WILL''' cause your client to hang at the infamous &quot;black screen&quot;, so '''DISABLE''' your tutorials by hitting ESC key, then going under General Settings and uncheck the box next to Show Tutorials. === <span id="Windows_6" class="mw-headline"> Windows </span> === Then you should be able to run eve-server.exe to start the server. The server log will be stored in C:\evemu\log\eve-server.log if you need it. Wait for the message : &quot;Init Done&quot; before initiating any action associated with the server(Even opening a client). [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 See here] for an old forum thread that discusses eve-server restart scripts in the cases where the server crashes, somewhere down the page is a script for windows. === <span id="Linux_6" class="mw-headline"> Linux </span> === You can just run the eve-server executable in your build directory, or you can use a script to run it, even to restart it if it ever crashes. [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 Here is a forum thread] that lists several different scripts on how the eve-server can be restarted if it crashes. == <span id="FAQ" class="mw-headline"> FAQ </span> == You will find it under [[Incursion_FAQ.html|Incursion FAQ]] = <span id="INCURSION_Development" class="mw-headline"> INCURSION Development </span> = Information will be soon here. <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Incursion&quot; == The following 3 pages are in this category, out of 3 total. <div class="mw-content-ltr" lang="en" dir="ltr"> === I === * [[Incursion_FAQ.html|Incursion FAQ]] === S === * [[Server_Status_(Crucible).html|Server Status (Crucible)]] * [[Server_Status_(Incursion).html|Server Status (Incursion)]] </div> </div> </div> </div> b05ac369a4503c2c0e374507c11ad36c8ef9d178 Old Wiki:Category Inferno 0 47 72 2021-04-03T14:17:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="NOT_UNDER_DEVELOPMENT" class="mw-headline"> NOT UNDER DEVELOPMENT </span> = <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 85190c98308f839411fd6a23d05978da34eca923 Old Wiki:Category Module Manager 0 48 73 2021-04-03T14:17:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_Game_Operation.html|Game Operation]] / '''Module Manager''' (you are here) |} <br /> {| |width="100%"| {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Resources|<span class="tocnumber">1</span> <span class="toctext">Resources</span>]] * [[#Introduction|<span class="tocnumber">2</span> <span class="toctext">Introduction</span>]] * [[#Important_Classes|<span class="tocnumber">3</span> <span class="toctext">Important Classes</span>]] ** [[#Module_Manager|<span class="tocnumber">3.1</span> <span class="toctext">Module Manager</span>]] *** [[#Effect_and_Bonus_Modifier_Calculation_Types|<span class="tocnumber">3.1.1</span> <span class="toctext">Effect and Bonus Modifier Calculation Types</span>]] *** [[#Module_States|<span class="tocnumber">3.1.2</span> <span class="toctext">Module States</span>]] *** [[#Charge_States|<span class="tocnumber">3.1.3</span> <span class="toctext">Charge States</span>]] *** [[#Module_Effect_Applied_Behaviors|<span class="tocnumber">3.1.4</span> <span class="toctext">Module Effect Applied Behaviors</span>]] *** [[#Module_Target_Equipment_Types|<span class="tocnumber">3.1.5</span> <span class="toctext">Module Target Equipment Types</span>]] *** [[#Module_Effect_Applied_To_Target_Types|<span class="tocnumber">3.1.6</span> <span class="toctext">Module Effect Applied To Target Types</span>]] **** [[#targetGroupIDs|<span class="tocnumber">3.1.6.1</span> <span class="toctext">targetGroupIDs</span>]] *** [[#Module_Effect_Application_Types|<span class="tocnumber">3.1.7</span> <span class="toctext">Module Effect Application Types</span>]] *** [[#Module_Stacking_Penalty|<span class="tocnumber">3.1.8</span> <span class="toctext">Module Stacking Penalty</span>]] *** [[#Module_Power_Levels|<span class="tocnumber">3.1.9</span> <span class="toctext">Module Power Levels</span>]] ** [[#ModuleContainer|<span class="tocnumber">3.2</span> <span class="toctext">ModuleContainer</span>]] ** [[#Modifier|<span class="tocnumber">3.3</span> <span class="toctext">Modifier</span>]] ** [[#ModifierMap|<span class="tocnumber">3.4</span> <span class="toctext">ModifierMap</span>]] ** [[#MEffect|<span class="tocnumber">3.5</span> <span class="toctext">MEffect</span>]] ** [[#DGM_Effects_Table|<span class="tocnumber">3.6</span> <span class="toctext">DGM_Effects_Table</span>]] ** [[#ModuleEffects|<span class="tocnumber">3.7</span> <span class="toctext">ModuleEffects</span>]] ** [[#GenericModule|<span class="tocnumber">3.8</span> <span class="toctext">GenericModule</span>]] ** [[#Module_Classes|<span class="tocnumber">3.9</span> <span class="toctext">Module Classes</span>]] ** [[#Module_Components|<span class="tocnumber">3.10</span> <span class="toctext">Module Components</span>]] * [[#Analysis_via_EFT_of_Order_of_Effects_and_Bonuses_Application|<span class="tocnumber">4</span> <span class="toctext">Analysis via EFT of Order of Effects and Bonuses Application</span>]] * [[#Connecting_the_Missing_Links|<span class="tocnumber">5</span> <span class="toctext">Connecting the Missing Links</span>]] ** [[#Adding_Effects_Data_from_a_Module|<span class="tocnumber">5.1</span> <span class="toctext">Adding Effects Data from a Module</span>]] *** [[#Implementing_Effects|<span class="tocnumber">5.1.1</span> <span class="toctext">Implementing Effects</span>]] **** [[#PART_I_-_Getting_the_Module_Information|<span class="tocnumber">5.1.1.1</span> <span class="toctext">PART I - Getting the Module Information</span>]] **** [[#PART_II_-_Inserting_Effects_Information_into_dgmEffectsInfo_table|<span class="tocnumber">5.1.1.2</span> <span class="toctext">PART II - Inserting Effects Information into dgmEffectsInfo table</span>]] **** [[#PART_III_-_Inserting_Effects_Action_information_into_the_dgmEffectsActions_table|<span class="tocnumber">5.1.1.3</span> <span class="toctext">PART III - Inserting Effects Action information into the dgmEffectsActions table</span>]] **** [[#RINSE_and_REPEAT_-_Keep_doing_PART_I_through_PART_III_for_all_effectIDs_on_a_module|<span class="tocnumber">5.1.1.4</span> <span class="toctext">RINSE and REPEAT - Keep doing PART I through PART III for all effectIDs on a module</span>]] *** [[#Implementing_Type_Attribute_Modifiers|<span class="tocnumber">5.1.2</span> <span class="toctext">Implementing Type Attribute Modifiers</span>]] |} |} = <span id="Resources" class="mw-headline"> Resources </span> = * '''''[[Ship_Combat.html|Ship Combat]]''''' * '''''<s>[[Ship_Bonus_Modifiers_Complete_List.html|Ship Bonus Modifiers Complete List]]</s>''''' * '''''<s>[[Skill_Bonus_Modifiers_Complete_List.html|Skill Bonus Modifiers Complete List]]</s>''''' * '''''<s>[[Module_Effects_Info_and_Actions_Complete_List.html|Module Effects Info and Actions Complete List]]</s>''''' * '''''<s>[http://wiki.evemu.dev/index.php?title=Implant_Bonus_Modifiers_Complete_List&action=edit&redlink=1 Implant Bonus Modifiers Complete List]</s>''''' The links with strike-through are deprecated since Reve had discovered that the EVEHQ tool has resource files in CSV format for the following groups: Effects, Skill Bonuses, Ship Bonuses, Subsystems, Implant Effects, Ship Effects, Booster Effects, and Booster Bonues. These will be adapted to our existing, but currently empty dgm tables. = <span id="Introduction" class="mw-headline"> Introduction </span> = This page is for how modules interact with the server. It is not about creating new modules/items, though it may help depending on how creative at coding you are. Luck and I brainstormed for quite a while on this redesign of the ModuleManager and its associated classes. [[ModuleManager_Conversations_with_Luck.html|This article]] contains conversations I've had with Luck on the subject for some deep background on this topic. The Module Manager is probably the most important aspect of the entire EVE game since it is what makes ships useful to do things such as combat, support, transportation, and mining. Without the ability to fit modules to a ship and have them do things, the game is pretty much useless. The Module Manager has many classes contained inside and are used for a great many things, so we will begin with a few critical classes and drill deeper as we go. Notable sections to take a look at in this large article are the [[#Important_Classes|Important Classes]] section describing each of the Module Manager's critical classes and the [[#Connecting_the_Missing_Links|Connecting the Missing Links]] section describing how we connect Module Effects to the attributes on the module used to modify ship/charge/target attributes and how we connect Ship/Implant/Skill bonus modifiers to item attributes used to modify ship/charge/module/target attributes. ----- = <span id="Important_Classes" class="mw-headline"> Important Classes </span> = * [[#Module_Manager|Module Manager]] - the heart of it all: its methods are called by the [http://wiki.evemu.dev/index.php?title=Ship_class&action=edit&redlink=1 Ship class] and owns and maintains all banks of modules installed on a ship * [[#Module_Container|Module Container]] - a container class containing separate container structures for each module bank, rig bank, and subsystem bank on a single ship * [[#Modifier|Modifier]] - * [[#ModifierMap|ModifierMap]] - * [[#MEffect|MEffect]] - * [[#DGM_Effects_Table|DGM_Effects_Table]] - * [[#ModuleEffects|ModuleEffects]] - * [[#GenericModule|GenericModule]] - * [[#Module_Classes|Module Classes]] - * [[#Module_Components|Module Components]] - == <span id="Module_Manager" class="mw-headline"> Module Manager </span> == TBD === <span id="Effect_and_Bonus_Modifier_Calculation_Types" class="mw-headline"> Effect and Bonus Modifier Calculation Types </span> === '''NOTE: THIS TABLE DATA WAS PULLED FROM THE ''EVEHQ'' APPLICATION SOURCE CODE EveHQ.HQF\Classes\Fitting.vb SOURCE FILE. SEE THAT FILE FOR THE SOURCE OF THE TABLE SHOWN HERE''' {| |+ Effect and Bonus Modifier Calculation Types - source: src/eve-server/ship/modules/ModuleDefs.h: enum EVECalculationTypes ! Calculation Name ! Enum Name ! Enum Code ! Description |- |  ? |  ? |  ? |  ? |} '''NOTE: THIS TABLE IS BEING DEPRECATED IN FAVOR OF THE CALCULATION TYPES, FORMULAS, AND CODES PULLED FROM THE ''EVEHQ'' APPLICATION FOUND IN THAT PROJECT'S EveHQ.HQF\Classes\Fitting.vb FILE. SEE THAT FILE FOR THE SOURCE OF THE TABLE ABOVE.''' {| |+ Effect and Bonus Modifier Calculation Types - source: src/eve-server/ship/modules/ModuleDefs.h: enum EVECalculationTypes ! DEPRECATED ! Calculation Name ! Enum Name ! Enum Code ! Description |- | '''DEPRECATED''' | NONE | CALC_NONE | 2000 | This is the default NONE calculation, only use this for effects that require NO calculation to modify any attributes. |- | '''DEPRECATED''' | AUTO | CALC_AUTO | 2001 | This is the code used to direct the Effects Processor to pick the calculation formula automatically, also DO NOT USE THIS! |- | '''DEPRECATED''' | Add | CALC_ADD | 2002 | Add two values |- | '''DEPRECATED''' | Subtract | CALC_SUBTRACT | 2003 | Subtract second value from the first |- | '''DEPRECATED''' | Divide | CALC_DIVIDE | 2004 | Divide the first value by the second value |- | '''DEPRECATED''' | Multiply | CALC_MULTIPLY | 2005 | Multiply first value with the second value |- | '''DEPRECATED''' | Add Percent | CALC_ADD_PERCENT | 2006 | (val1 + (val1 * val2)) |- | '''DEPRECATED''' | Reverse Add Percent | CALC_REV_ADD_PERCENT | 2007 | (val1 / (val3 + val2)) |- | '''DEPRECATED''' | Subtract Percent | CALC_SUBTRACT_PERCENT | 2008 | (val1 - (val1 * val2)) |- | '''DEPRECATED''' | Reverse Subtract Percent | CALC_REV_SUBTRACT_PERCENT | 2009 | (val1 / (1 - val2)) |- | '''DEPRECATED''' | Add As Percent | CALC_ADD_AS_PERCENT | 2010 | (val1 + (val1 * (val2 / 100))) |- | '''DEPRECATED''' | Subtract As Percent | CALC_SUBTRACT_AS_PERCENT | 2011 | (val1 / (1 + (val2 / 100))) |- | '''DEPRECATED''' | Modify Percent With Percent | CALC_MODIFY_PERCENT_W_PERCENT | 2012 | (val1 * (1 + (val2 / 100))) - '''same as Add As Percent''' |- | '''DEPRECATED''' | Reverse Modify Percent With Percent | CALC_REV_MODIFY_PERCENT_W_PERCENT | 2013 | (100 * ((val1 / val2) - 1)) |- | '''DEPRECATED''' | Special Handling for Microwarpdrives and Afterburners | CALC_MWD_AB_EQUATION | 2014 | See [[Ship_Combat.html#SPACE_OPERATIONS|see Ship Combat -&gt; Space Operations]] for details on this equation, since it will be implemented in the module class for groupID 46 |- | '''DEPRECATED''' | Special Handling for Electronic Countermeasure modules | CALC_ECM_JAM_EQUATION | 2015 | See [[Module_Effects_Info_and_Actions_Complete_List.html#Electronic_Countermeasure_-_groupID_201|Electronic Countermeasures]] for details on this equation, since it will be implemented in the module class for groupID 201 |- | '''DEPRECATED''' | Reduce By Percent | CALC_REDUCE_BY_PERCENT | 2016 | (val1 * (1 - (val2 / 100)) |- | '''DEPRECATED''' | Reverse Reduce By Percent | CALC_REV_REDUCE_BY_PERCENT | 2017 | (val1 / (1 - (val2 / 100)) |} === <span id="Module_States" class="mw-headline"> Module States </span> === Each Module has a number of states that it moves through and operates in while it is fitted to a ship and the pilot is doing things with the ship. Most modules will either be in the Online state or Offline state, but many will enter into the Active state and even the Overload state. Some modules take charges into them that are either consumed or launched into the environment and those have additional states related to the loading and unloading of those charges. The first table below shows the entire list of module states allowed and what each one means. The second table shows each allowed module state transition, such as Offline to Online. An example of a state transition that would not be allowed would be Offline to Active, because every module MUST go through the Online state before entering the Active state. '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsActions|dgmEffectsActions]] table - '''effectAppliedInState''' field {| |+ Module States - source: src/eve-server/ship/modules/ModuleDefs.h: enum ModuleStates ! State Name ! Enum Code ! Enum Name ! Description |- | Unfitted | 1100 | MOD_UNFITTED |  ? - not sure if we'll even use this state |- | Offline | 1101 | MOD_OFFLINE |  ? |- | Online | 1102 | MOD_ONLINE |  ? |- | Activated | 1103 | MOD_ACTIVATED |  ? |- | Overloaded | 1104 | MOD_OVERLOADED |  ? |- | Deactivating | 1105 | MOD_DEACTIVATING |  ? |} {| |+ Module State Transitions ! Current State ! Next State |- | Unfitted | Offline |- | Offline | Online |- | Online | Activated |- | Online | Overloaded |- | Activated | Deactivating |- | Overloaded | Deactivating |- | Deactivating | Online |- | Online | Offline |- | Offline | Unfitted |} === <span id="Charge_States" class="mw-headline"> Charge States </span> === Each module that can take charges will also have a Charge State associated with it. Actually, all module classes that inherit from the [[#GenericModule|GenericModule]] class will have a private varible for Module State AND one for Charge State, but many modules will not make use of the Charge State simply because they do not take charges. The allowed Charge States and Charge State transitions are shown in the two tables below, respectively. '''USED IN''' - TBD {| |+ Charge States - source: src/eve-server/ship/modules/ModuleDefs.h: enum ChargeStates ! State Name ! Enum Code ! Enum Name ! Description |- | Unloaded | 1200 | MOD_UNLOADED |  ? |- | Loading | 1201 | MOD_LOADING |  ? |- | Reloading | 1202 | MOD_RELOADING |  ? |- | Loaded | 1203 | MOD_LOADED |  ? |} {| |+ Charge State Transitions ! Current State ! Next State |- | Unloaded | Loading |- | Loading | Loaded |- | Unloaded | Reloading |- | Reloading | Loaded |} === <span id="Module_Effect_Applied_Behaviors" class="mw-headline"> Module Effect Applied Behaviors </span> === '''NOTE: THIS FIELD IS DEPRECATED SINCE EVEHQ STATE CODES REPRESENT SINGLE BIT POSITIONS IN A BINARY NUMBER SO THAT A SINGLE STATE CODE FOR AN EFFECT CAN REPRESENT MORE THAN ONE STATE''' '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''effectAppliedBehavior''' field {| |+ Module Effect Applied Behaviors ! Effect Behavior Name ! Enum Code ! Enum Name ! Description |- | Effect Persistent | 1300 | EFFECT_PERSISTENT | means the effect is active AT ALL TIMES; used ONLY for skill, ship, subsystem effects |- | Effect Online | 1301 | EFFECT_ONLINE | means the effect takes effect on the target (see below) upon entering the ONLINE state |- | Effect Active | 1302 | EFFECT_ACTIVE | used only for ACTIVE modules operating in non-Overloaded mode |- | Effect Overload | 1303 | EFFECT_OVERLOAD | used only for ACTIVE modules operating in Overloaded mode |} === <span id="Module_Target_Equipment_Types" class="mw-headline"> Module Target Equipment Types </span> === TODO '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''targetEquipmentType''' field '''ALSO SPECIFY''' target equipment groupIDs using [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''targetGroupIDs''' field as a comma separated list of numbers with NO SPACES all in one string {| |+ Module Target Equipment Types ! Equipment Type Name ! Enum Code ! Enum Name ! Description |- | Module | 1400 | EQUIP_MODULE |  ? |- | Charge | 1401 | EQUIP_CHARGE |  ? |- | This Ship | 1402 | EQUIP_THIS_SHIP |  ? |- | Drone | 1403 | EQUIP_EXTERNAL_SHIP |  ? |- | External Ship's Module | 1404 | EQUIP_EXTERNAL_SHIP_MODULE |  ? |- | External Ship's Charge | 1405 | EQUIP_EXTERNAL_SHIP_CHARGE |  ? |} === <span id="Module_Effect_Applied_To_Target_Types" class="mw-headline"> Module Effect Applied To Target Types </span> === TODO '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''effectAppliedTo''' field {| |+ Module Effect Applied To Target Types ! Target Type Name ! Enum Code ! Enum Name ! Description |- | Self | 1500 | EFFECT_TARGET_SELF | means the target of the effect is the module's own attribute(s) |- | Ship | 1501 | EFFECT_TARGET_SHIP | means the target of the effect is the attribute(s) of the ship to which the module is fitted |- | External Target | 1502 | EFFECT_TARGET_EXTERNAL | means the target of the effect is the attribute(s) of the current target of the ship to which the module is fitted |- | Module on Ship | 1503 | EFFECT_MODULE_ON_SHIP | means a module or modules that are fitted to the current ship, this special case will indicate when the effect is applied to other modules applied to the same ship - the '''dgmEffectsActions''' table fields of '''targetEquipmentType''' and '''targetGroupIDs''' will have additional information for the Module Manager to make use of this effect |- | Module containing Charge | 1504 | EFFECT_LOADED_CHARGE | means that the effect is from a charge loaded into a weapon module so this will affect charges of the specified groupID loaded into any module on the ship |- | Charge loaded into a Module | 1505 | EFFECT_CHARGE | means that the effect acts upon a charge loaded into a weapon module so this will affect charges of the specified groupID loaded into any module on the ship |- | Character that owns the skill | 1506 | EFFECT_CHARACTER | means that the effect acts upon the character's attribute specific to the effect |} ==== <span id="targetGroupIDs" class="mw-headline"> targetGroupIDs </span> ==== You may use these codes to indicate special behaviors other than simply which groups of modules on which apply the effect: {| |+ Module Target Equipment Types ! Special 'targetGroupIDs' Code ! Additional Parameters ! Example ! Description |- | -1 | a comma separated list of attribute IDs | &quot;-1,1211&quot; | Indicates that the Module Manager should apply this effect ONLY to all modules that have one of the listed attribute IDs |- | -5 | a comma separated list of attribute IDs | &quot;-5,1211,1212&quot; | Indicates that the Module Manager should apply this effect ONLY to all modules that have ALL of the listed attribute IDs |- | -10 | a code indicating slot bank to be modified | &quot;-10,1801&quot; | Indicates a slot bank code that is to be modified, primarily used for Tech 3 Strategic Cruiser subsystem module effects that modify the slot configuration. See [[#Module_Power_Levels|Module Power Levels]] for these codes. |- | -15 | a comma separated list of effect IDs | &quot;-15,1615&quot; | Indicates that the Module Manager should apply this effect ONLY to all modules or ships that have one of the listed effectIDs |} === <span id="Module_Effect_Application_Types" class="mw-headline"> Module Effect Application Types </span> === '''NOTE: TO BE REVISED AND REMOVED - MODULE STATE IS ENOUGH TO DETERMINE WHAT THE MODULE APPLICATION TYPE IS, THE THIRD CODE IS UNNECESSARY AS EACH MODULE CLASS WILL KNOW IF IT SHOULD CONSUME SOMETHING OR ACCUMULATE SOMETHING''' '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''effectApplicationType''' field {| |+ Module Effect Application Types ! Effect Application Type Name ! Enum Code ! Enum Name ! Description |- | Maintain Effect in Online State | 1600 | EFFECT_ONLINE_MAINTAIN | applied by PASSIVE or ACTIVE modules where an effect is maintained; means the effect takes effect on the target (see below) upon entering the ONLINE state. It may or may not then be reversed when going out of ONLINE state; this is specified in other fields of the '''dgmEffectsActions''' table, specifically the '''nullifyOnlineEffect''' and '''nullifiedOnlineEffectID''' fields. |- | Maintain Effect in Activated State | 1601 | EFFECT_ACTIVE_MAINTAIN | applied by ACTIVE modules where an effect is maintained; means the effect takes effect on the target (see below) upon entering the ACTIVATE state, then reversed when going out of ACTIVATE state |- | Effect Repeatedly Consumes while in Activated State | 1602 | EFFECT_ACTIVE_ACCUMULATE | applied by ACTIVE modules where an effect is applied cumulatively on each cycle; means the effect takes effect on the target (see below) one extra time when in ACTIVATE state after each CYCLE duration expires |} === <span id="Module_Stacking_Penalty" class="mw-headline"> Module Stacking Penalty </span> === TODO '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''stackingPenaltyApplied''' field {| |+ Stacking Penalty States ! Stacking Penalty State ! Enum Code ! Enum Name ! Description |- | No Stacking Penalty Applied | 1700 | NO_STACKING_PENALTY | No Stacking Penalty applies |- | Stacking Penalty Applies | 1701 | STACKING_PENALTY_APPLIES | Stacking Penalty applies |} === <span id="Module_Power_Levels" class="mw-headline"> Module Power Levels </span> === TODO {| |+ Module Power Levels ! Power Level Name ! Enum Code ! Enum Name ! Description |- | High Power | 1800 | MODULE_BANK_RIG_POWER | High Power module slot bank |- | Medium Power | 1801 | MODULE_BANK_LOW_POWER | Medium Power module slot bank |- | Low Power | 1802 | MODULE_BANK_MEDIUM_POWER | Low Power module slot bank |- | Rig | 1803 | MODULE_BANK_HIGH_POWER | Rig bank |- | Subsystem | 1804 | MODULE_BANK_SUBSYSTEM | Subsystem bank |} == <span id="ModuleContainer" class="mw-headline"> ModuleContainer </span> == TBD == <span id="Modifier" class="mw-headline"> Modifier </span> == TBD == <span id="ModifierMap" class="mw-headline"> ModifierMap </span> == TBD == <span id="MEffect" class="mw-headline"> MEffect </span> == TBD == <span id="DGM_Effects_Table" class="mw-headline"> DGM_Effects_Table </span> == TBD == <span id="ModuleEffects" class="mw-headline"> ModuleEffects </span> == TBD == <span id="GenericModule" class="mw-headline"> GenericModule </span> == TBD == <span id="Module_Classes" class="mw-headline"> Module Classes </span> == * PassiveModule * ActiveModule TBD == <span id="Module_Components" class="mw-headline"> Module Components </span> == TBD ----- = <span id="Analysis_via_EFT_of_Order_of_Effects_and_Bonuses_Application" class="mw-headline"> Analysis via EFT of Order of Effects and Bonuses Application </span> = There are so many ways that changes are made to ship, module, and other items' attributes by other items such as modules, charges, implants, rigs, boosters, subsystems, etc that we need to figure out the order in which they should be applied because it has to matter somehow. To wit, we turn to EFT to find the answers and my discoveries will be recorded here. Empty Maller: Amarr Cruiser skill: 10% bonus to Medium Energy Turret capacitor use per level | 5% bonus to all Armor Resistances per level Resistances: EM 0%/50% | Thermal 20%/35% | Kinetic 40%/25% | Explosive 50%/20% AFTER Amarr Cruiser Level 3 APPLIED: Resistances: EM 0%/57.5% | Thermal 20%/44.8% | Kinetic 40%/36.3% | Explosive 50%/32% <br /> <br /> = <span id="Connecting_the_Missing_Links" class="mw-headline"> Connecting the Missing Links </span> = Nowhere in CCP's static Database dump are the connections or relations that we can find that tie a module's effects to that module's attributes which are then used to modify specific attributes on the module itself or a loaded charge or the ship or even an external target ship or module on that target ship. Nor are there any indications as to by which specific mathematical formulas are those attributes to be applied to the target's attributes. Close inspection of the attributes and effects of the modules added with knowledge of the actual EVE game play and how modules work to affect attributes all show how these connections can be made. The '''dgmEffects''' table contains information on each effect type a module may have assigned to it in the '''dgmTypeEffects''' table, the later being keyed on the item's typeID. The '''dgmAttributes''' table contains information on each attribute type an item type may have assigned to it in the '''dgmTypeAttributes''' table, the later being keyed on the item's typeID. The '''dgmTypeAttributes''' and '''dgmTypeEffects''' tables list which attributes and which effects each module/ship/skill/drone/other item type has assigned to it and what the value of that attribute is. What is missing is the information that describes exactly what calculations are performed for each effect of a module or other item type, which attribute(s) on that item type are used in the calculation, and which attribute(s) on the target item type is affected by the calculation result. The connections are formed using three new tables [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]], [[Category_EVE_Database.html#dgmEffectsActions|dgmEffectsActions]], and [[Category_EVE_Database.html#dgmTypeAttributeModifiers|dgmTypeAttributeModifiers]]. What follows are detailed descriptions of how each table is populated with information from a skill, ship, module, charge, implant, etc so we have the information to make effects and bonus modifiers work properly. == <span id="Adding_Effects_Data_from_a_Module" class="mw-headline"> Adding Effects Data from a Module </span> == In order to add field data to the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables, you really do need to understand how modules' effects make changes to attributes on whatever target it is supposed to affect. An example of this would be that an Active Armor Hardener module when active adds a bonus percentage to a ship's armor resonance attribute. That knowledge will not be replicated here as it is too vast. Your best bet is to play EVE live or hopefully EVEmu works and can demonstrate what modules and other items do. Alternatives are to use EFT or EVEHQ to make ship fittings and discover how character skills, ship bonuses, and modules can affect one another to make a ship fitting do whatever it is you want it to do. To aid you in this endeavor, EVEmu has an [[Category_EVEmu_API_Server.html|API Server]] capable of many of the official API calls, most notably those required to connect EFT and EVEmon to your character on the EVEmu server. See the [[Category_EVEmu_API_Server.html|EVEmu API Server]] article for information on how to use it to make a new API account and then connect it to these out of game EVE tools adapted for use with the EVEmu server. Now, the following procedures assume you are specifying the correct source attribute(s), skill, target attribute(s), and the calculation formula used to make the change on the target attribute(s) of the target item type. As for ship, skill, and implant bonuses, there is more information contained in the list of effects and attributes for these items but knowledge to connect them is still required. These last sets of data are entered into the '''dgmShipBonusModifiers''', '''dgmSkillBonusModifiers''', and '''dgmImplantBonusModifiers''' tables. These procedures will be described by way of example for the Armor Thermic Hardener I fitted to an Amarr Maller cruiser, which gets 5% bonus to all armor resistances per level of the Amarr Cruiser skill. The armor hardener module is an active one, however, it is rather unique in that it not only has effects for the Active state but also for the Online (not active) state. It also has an effect for the Overload Active state. So, given that it has effects for all three critically important Module States (Online, Active, Overload), this module will prove to be a good example on how to insert data into the aforementioned tables in order to make the proper connections between the effects, the source attributes, and the target attributes. ----- === <span id="Implementing_Effects" class="mw-headline"> Implementing Effects </span> === ==== <span id="PART_I_-_Getting_the_Module_Information" class="mw-headline"> PART I - Getting the Module Information </span> ==== First, use [[EVEmu_Control_Panel.html|EVEmu Control Panel]] to connect to your [[Category_EVE_Database.html|EVE Database]] and then move over to the Item/Ship Editor tab and select Category Module, then type &quot;Armor Thermic Hardener&quot; into the Search box and press Search button. Now, in the results window, right-click and hit Edit on the Armor Thermic Hardener I. The new window will show you Info, Attributes, and Effects of this module. You can do this for any item type in the game (just choose a different category and either search or just scroll through the complete list of the items in that category). Now, click on the Effects tab to view this module's effects. You'll see these three effects: * (id = 2084) '''modifyArmorResonancePassivePostPercent''' * (id = 2098) '''modifyActiveArmorResonanceAndNullifyPassiveResonance''' * (id = 3030) '''overloadSelfThermalHardeningBonus''' These three effects are the ones for which we wish to enter data into the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables. Here's how we do that. Note, as stated before, you have to know what these modules DO in the real game to figure out what attributes on the module are used and which formula they are used with, which attributes on the 'target' are affected, and what that 'target' is, whether it's a ship to which the module is fitted, the module itself or it's own charge, or even an external target such as another hostile/friendly ship/drone/station/structure. ==== <span id="PART_II_-_Inserting_Effects_Information_into_dgmEffectsInfo_table" class="mw-headline"> PART II - Inserting Effects Information into dgmEffectsInfo table </span> ==== First, let's enter data for the '''modifyArmorResonancePassivePostPercent'''. This effect is meant to take effect when the module is in the Online state. See [[#Module_States|Module States]] section above for information on the possible state of each module. This effect uses as sources the attributes on this module with IDs of 994, 995, 996, and 997. So, we need to enter 4 rows of data into the '''dgmEffectsInfo''' table. The [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table contains the following fields. {| |+ dgmEffectsInfo table Fields ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |} The calculation for this is odd since armor and shield resonances are not like most attribute calculations. Resonances are kind of opposite of EFT Resistances that are in % and the higher the Resistance % the less damage you take from a certain amount of HP on that damage type. Resonances are opposite in that the smaller the number the less damage you take, more like just multiplying the resonance value with the actual damage HP and the result is the real damage applied to your shield or armor. So, essentially, Resistance % = 100% - Resonance %, where the resonance value is a decimal between 0.0 and 100.0 and is a percentage. Now, to use one of those passiveXXXXDamageResistanceBonus values from the Armor Thermic Hardener I, we take the value, for say passiveThermicDamageResistanceBonus, which is -1, because the others are 0 (come on, this IS an Armor THERMIC Hardener I after all...). Take the value of -1, which is resonance as percentage, or -1%, and it gets applied to the current ship's armorThermalDamageResonance, which in the case of the Maller with NO SKILLS on the character has a value of 0.65 or 65%. Keep in mind that if you use EFT to check the Maller with no skills, you'll see the Armor Thermal Resistance value to be 35%, which is simply 100%-resonance%. Please forgive the fact that you cant actually fly the ship like this, but NO skills makes separating out the calculations easier. To apply the -1% resonance to the 65% current resonance value, we first have to add the -1% to 100%, yielding 99% and then multiply that with the 65%, which yields 64.35% for Armor Thermic Resonance. If you now fit the Armor Thermic Hardener I to the Maller in EFT again with NO skills on the character, you'll see the Armor Thermal Resistance increase from 35% (100% - 65%) to 35.7%, which is simply 100% - 64.35% = 35.65% rounded up to 35.7%. This all means you use a formula code for Modify Percent With Percent, so see the [[#Effect_and_Bonus_Modifier_Calculation_Types|Effect and Bonus Modifier Calculation Types]] section for the actual codes for each calculation allowed to be done with an effect or bonus modifier. Finally, the target attribute ID you'll find by inspecting the Maller ship attributes list for armor resonances, in this case the '''armorThermicDamageResonance''' with ID = 270. Now, how did we know to look at the ship's attribute list and not some other &quot;target&quot;? Well, because we know the game mechanics and that the Armor Thermic Hardener I module changes the ship's damage resistance for Thermal damage. By way of example, if this had been an Omnidirectional Tracking Link I module, which gives bonuses to drone optimal range and tracking speed, we would know that the target would be the drones' attributes for tracking speed and optimal range, which are TWO different effects thus requiring two new rows added to the '''dgmEffectsInfo''' table. Finally, back to our Armor Thermic Hardener I example, here are the four rows we add to the '''dgmEffectsInfo''' table to make the linkage between the effectID of 2084 for '''modifyArmorResonancePassivePostPercent''' the source attributes on the module and the target attribute on the ship. {| |+ dgmEffectsInfo table Entries for Armor Thermic Hardener effectID = 2098 ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |- | 2084 | 267 | 994 | 2012 | 2013 |- | 2084 | 268 | 995 | 2012 | 2013 |- | 2084 | 269 | 996 | 2012 | 2013 |- | 2084 | 270 | 997 | 2012 | 2013 |} BOOM, now you've just added effectID 2084 for ALL modules in the Armor Hardener groupID 328. Yep, all 177 of them. Congradulations, but then again I just did that work for you and you watched, hahahahaha. And, actually, we're not done since we've only covered half the story for this effect not to mention that we have to do the same for the other two effectIDs on this module. ==== <span id="PART_III_-_Inserting_Effects_Action_information_into_the_dgmEffectsActions_table" class="mw-headline"> PART III - Inserting Effects Action information into the dgmEffectsActions table </span> ==== '''NOTE: THIS TABLE HAS BEEN REMOVED AND effectAppliedInState FIELD MOVED TO dgmEffectsInfo TABLE TO CONFORM WITH IMPORT FROM EVEHQ Effects.csv RESOURCE FILE. THIS IS LESS EFFICIENT STORAGE BUT MORE CONCISE AND NOT REALLY ALL THAT MUCH EXTRA SPACE IN THE DATABASE FOR A COUPLE THOUSAND EFFECTS. THIS ENTIRE SECTION _MUST_ BE REVISED TO DESCRIBE HOW THE effectAppliedInState NOW COMES FROM THE EVEHQ IMPORT.''' Now that we've defined the ''what'' of this effect in the '''dgmEffectsInfo''' table, the other half of the definition of the effect is to define what ''action'' to take and when to take it. This data goes into the '''dgmEffectsActions''' table. {| |+ dgmEffectsActions table Fields ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |} The '''dgmEffectsActions''' table is used by the Module Manager to manage the operation of a module in its different states. It needs to know in which state or states that a particular effect is to go ''active'' and what actions to take on what target. There will be one row added to this table for each effectID. For our example case of the Armor Thermic Hardener I and the '''modifyArmorResonancePassivePostPercent''' effect that we're still working on, we need to define this table's field data for this effect. The '''effectAppliedInState''' allows us to define which [[#Module_States|Module State]] in which this effect goes '''active'''. In this case, it is Passive Resonance bonus so we will choose the 'Online' state (see [[#Module_States|Module States]] for the correct state code). The '''effectAppliedTo''' allows us to define which type of target this effect is meant to affect, be it itself (the module), the ship to which it's fitted, or some external target. See the [[#Module_Effect_Applied_To_Target_Types|Module Effect Applied To Target Types]] section for the correct code to use in this case where we want to affect the SHIP to which this module is fitted. It is an Armor Hardener and is meant to change attributes of the ship to which it is fitted. The '''effectApplicationType''' lets us define how this effect is applied to the target, be it a maintained level of effect or a cumulative effect. In this case, when this effect is '''active''', it will maintain a new value for the Armor Resonances that it affects while it is in the 'Online' state. The new values will maintain until the state changes out of 'Online', so we chose the Effect Online Maintain code found in the [[#Module_Application_Types|Module Application Types]] section. The '''targetEquipmentType''' field is used to define the typeID of the target being affected by this effect, however, this field is only used for entries that are coupled with entries placed into the '''dgmTypeAttributeModifiers''' so it is left empty, or zero, for Effects Processing. The same is said for the '''targetGroupIDs''' field, but since this one is a text field, we just leave it with empty text: &quot;&quot;. Moving on, we have the '''stackingPenaltyApplied''' field, which is used by the Module Manager to either apply module stacking penalty analysis including this effect or excluding this effect. This module does have stacking penalties applied to it when more than one module has an effect that affects the attributes affected by this effect. See the [[#Module_Stacking_Penalty|Module Stacking Penalty]] section for the correct code to use here. Affect, Effect, too confusing? Go play EVE live. Anyway, go read that last sentence ten more times and I promise you'll get it... I PROMISE. Ok, well if not, too bad, we're moving on anyway since you're such a noob. The '''nullifyOnlineEffect''' field lets us tell the Module Manager that when this effect is ''active'' and the ''active'' state is '''Activated''', that it is to undo any effects applied to the attributes affected by this effect when it was in the '''Online''' state. In this effect's case, it is active in the '''Online''' state, so it does not apply and we leave the value for this field at Zero, or 0. Finally, the '''nullifiedOnlineEffectID''' field lets us tell the Module Manager which of the other effects on this module is the one that needs to be undone when moving from the '''Online''' state to the '''Activated''' state, but again as is the case with this effect, it is active in the '''Online''' state, so we leave this field also at Zero, or 0. These last two fields we will make use of and explain how to set them with the next effect. So, let's take this data and place it into the '''dgmEffectsActions''' table for this effectID as shown here: {| |+ dgmEffectsActions table Entry for Armor Thermic Hardener I effectID = 2084 ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |- | 2084 | 1102 | 1501 | 1600 | 0 | &quot;&quot; | 1701 | 0 | 0 |} ==== <span id="RINSE_and_REPEAT_-_Keep_doing_PART_I_through_PART_III_for_all_effectIDs_on_a_module" class="mw-headline"> RINSE and REPEAT - Keep doing PART I through PART III for all effectIDs on a module </span> ==== The next effect is the '''modifyActiveArmorResonanceAndNullifyPassiveResonance''' which is a bit different than most other effects in that what first must happen before this effect goes active is the Passive Resonance bonus effect '''modifyArmorResonancePassivePostPercent''' effect must be nullified, or removed. Then, this effect can go active. So, just like the previously handled effect, this one also modifies the current ship's damage resonances but using the other set of damage resonance attributes on this module, not the ones with the passive prefix. Again, for each damage type hardener module, only one of these attributes will be non-zero, however, we're going to enter into the '''dgmEffectsInfo''' table rows that correspond to these source attributes. Source attributes are the damage resonance bonuses without the passive prefix on this module, target attributes are same as for the previous effect we took care of, and calculation types are also the same as the previous effect. Putting all that into a table for insertion yields this below: {| |+ dgmEffectsInfo table Entries for Armor Thermic Hardener effectID = 2098 ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |- | 2098 | 267 | 984 | 2012 | 2013 |- | 2098 | 268 | 985 | 2012 | 2013 |- | 2098 | 269 | 986 | 2012 | 2013 |- | 2098 | 270 | 987 | 2012 | 2013 |} Now, to insert data for this effect into the '''dgmEffectsActions''' table, here we're going to note that another effect ('''modifyArmorResonancePassivePostPercent''') is supposed to be reverted before applying this effect. First, this effect is applied in the '''Activated''' state, the effect is applied to the Ship, the application tye is the same as the previous effect: EFFECT_ACTIVE_MAINTAIN, the targetEquipmentType and targetGroupIDs can be left blank, and the stacking penalty applies. Finally, the nollifyOnlineEffect is set to 1, meaning the Online effect of this module is nullified on '''Activated''' state transition. The last field tells which actual effectID on this module to revert when this effect is supposed to go active, so use the previous effect's ID of 2084. {| |+ dgmEffectsActions table Entry for Armor Thermic Hardener I effectID = 2098 ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |- | 2098 | 1103 | 1501 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |} The last effect on the Armor Thermic Hardener I is the '''overloadSelfThermalHardeningBonus''', which has id = 3030. Now, overload effects are going to be a bit different than other more general effects, such as the previous two that we encountered on this module. This effect is specific to THERMAL armor hardeners, so by that logic, and you can verify this by looking up the other damage type hardeners in [[EVEmu_Control_Panel.html|EVEmu Control Panel]], the other damage type hardener modules will have their own overload effects. So, since this example is meant to completely fill out all modules in this group, we will show all four overload effects data rows below as to how you would insert them into the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables. The Armor Thermic Hardener I module as well as its companions for EM, Explosive, and Kinetic damage types will all have their own effects for overloading. They have IDs 3029 (EM), 3031 (Explosive), and 3032 (Kinetic). Although each damage typed hardener module has its own overload effectID, they all make use of the same overload attribute ID: 1208 for '''overloadHardeningBonus''', which for all basic Tech 1 hardeners has a value of 20. This value is 20% bonus to the base attribute that the module offers toward the ship's damage resonance. Since these modules offer 50% bonus to armor damage resonance when the module is in the '''Activated''' module state, then when the module is put into the '''Overloaded''' module state, the 50% bonus will be increased by this 20% overload bonus, so the new damage resistance bonus offered by the module will be (100% + 20%) * (50%) = 60%. Now, this calculates onto the Maller cruiser's Thermal Armor Resistance to increase its base resistance of 35% to 100% - [100% - (35% * (100% - 60%))] = 74% Thermal Armor Resistance. Now, this is a two level calculation and the Module Manager will handle overload bonuses BEFORE applying the module's bonus to the ship or whatever the target object is, so when we enter information into the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables for overload effects, the target will be the MODULE, not the other target that regular effects might have. So, for these overload effects, the data entered into the dgmEffectsInfo table will be as shown below for a '''sourceAttributeID''' of 1208 (the '''overloadHardeningBonus''') the '''targetAttributeID''' will be the module's own damage resistance bonus attribute that corresponds to the module's damage type (EM, Thermic, Kinetic, Explosive), the '''calculationTypeID''' will be Modify Percent As Percent, and ID of 2012 with the reverse ID = 2013. {| |+ dgmEffectsInfo table Entries for Armor Thermic/EM/Explosive/Kinetic Hardener I module group effectIDs = 3029, 3030, 3031, 3032 ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |- | 3029 | 984 | 1208 | 2012 | 2013 |- | 3030 | 987 | 1208 | 2012 | 2013 |- | 3031 | 985 | 1208 | 2012 | 2013 |- | 3032 | 986 | 1208 | 2012 | 2013 |} Adding data to the '''dgmEffectsActions''' table is crucial as well because it makes the final linkage from the attributes that get changed by the module, what module state it is in when the change happens, and if there are any stacking penalties and Online state effects that need to be nullified when this effect goes into... ahem... effect, hehe. So, the table below shows all four damage type overloaded hardener effects, the Overloaded state encoding (1104), the code for target of the effect being the Module not the ship (1500), no targetEquipmentType or targetGroupIDs (0, &quot;&quot;), stacking penalty not applied (1700), and Online effect (2084) nullified. Now, the weird thing about Overloaded effects of modules is that the Activated state effect (because every overloadable module has one) will ALSO be active along with the Overload effect. The [[#ModuleManager|ModuleManager]] will take care of this, but for the purposes of this section, we're only showing how the Overload effects get detailed in the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables so that when the ModuleManager and the Module classes do what they do, they do it correctly based on how the information is encoded into these tables. {| |+ dgmEffectsActions table Entries for Armor Thermic/EM/Explosive/Kinetic Hardener I module group effectIDs = 3029, 3030, 3031, and 3032 ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |- | 3029 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |- | 3030 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |- | 3031 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |- | 3032 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |} Finally, we're done with this module and it was a bit of a doosey because it's rather complicated having a passive effect, an active effect (which nullifies the passive one), and an overload effect. Now, that concludes this lesson, but the fun's not over, not by a long shot, so all modules will be scratch-padded in the way of these tables for both the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables in the article linked here: [[Module_Effects_Info_and_Actions_Complete_List.html|Module Effects Info and Actions Complete List]] ----- === <span id="Implementing_Type_Attribute_Modifiers" class="mw-headline"> Implementing Type Attribute Modifiers </span> === TBD [[Ship_Bonus_Modifiers_Complete_List.html|Ship Bonus Modifiers Complete List]] [[Skill_Bonus_Modifiers_Complete_List.html|Skill Bonus Modifiers Complete List]] [http://wiki.evemu.dev/index.php?title=Implant_Bonus_Modifiers_Complete_List&action=edit&redlink=1 Implant Bonus Modifiers Complete List] <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Module Manager&quot; == This category contains only the following page. <div class="mw-content-ltr" lang="en" dir="ltr"> === M === * [[Module_Effects_Info_and_Actions_Complete_List.html|Module Effects Info and Actions Complete List]] </div> </div> </div> </div> f954a2cb3173387f203c9cfd19ae719845203389 Old Wiki:Category NPCs 0 49 74 2021-04-03T14:18:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_Game_Operation.html|Game Operation]] / '''NPCs''' (you are here) |} <br /> {| |width="100%"| {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#NPC|<span class="tocnumber">1</span> <span class="toctext">NPC</span>]] * [[#NPC_Artificial_Intelligence|<span class="tocnumber">2</span> <span class="toctext">NPC Artificial Intelligence</span>]] * [[#NPC_Loot_Drops|<span class="tocnumber">3</span> <span class="toctext">NPC Loot Drops</span>]] * [[#NPC_Spawns|<span class="tocnumber">4</span> <span class="toctext">NPC Spawns</span>]] ** [[#spawnBounds|<span class="tocnumber">4.1</span> <span class="toctext">spawnBounds</span>]] ** [[#spawnGroupEntries|<span class="tocnumber">4.2</span> <span class="toctext">spawnGroupEntries</span>]] ** [[#spawnGroups|<span class="tocnumber">4.3</span> <span class="toctext">spawnGroups</span>]] ** [[#spawns|<span class="tocnumber">4.4</span> <span class="toctext">spawns</span>]] * [[#Spawn_Formations|<span class="tocnumber">5</span> <span class="toctext">Spawn Formations</span>]] |} |} = <span id="NPC" class="mw-headline"> NPC </span> = Non-Player Characters are one of the main ways to earn in-game ISK when playing EVE. These are server-controlled ships and are one of a handful of factions: Guristas, Angel, Drones, Serpentis, Sansha, and Sleepers (feel free to edit if I forgot some). <br /> TODO: I have some notes on this subject I have to add here, but here are my thoughs on initial stuff we need to get working for basic NPC stuff to function: <br /> * NPC class to create a ship and allow its control in space and targeting and combat * NPC AI class to make intelligent and/or scripted decisions on ship movement, targeting, combat, repair, support, and collaboration with other NPC ships in the same grid * NPC bounties: we need to add data to all NPC ships in the [[Category_EVE_Database.html|database]] to specify the bounties of each NPC ship the player will receive when an NPC ship is killed and a system that on a 5-10 minute timer, all NPC kill bounties are queued up, summed, and delivered to the player's wallet -- Bounties are already assigned via the [http://wiki.evemu.dev/index.php?title=Dgmtypeattributes&action=edit&redlink=1 dgmtypeattributes] under attributeID 481 -- Deslona <br /> * NPC Death and Wreck placement: we need to create linkages between NPC ships and their wrecks in some [[Category_EVE_Database.html|database table]] so the server knows which wreck object to spawn when that NPC ship is killed -- This is handled by the [[Invtypestowrecks.html|invtypestowrecks]] table -- For example; typeID 2382 = Guristas Arrogator, creates wreckTypeID 26543 in invtypestowrecks, it would use the entity table x,y,z, system location -- Deslona <br /> * NPC Loot Drop: we need to make some system by which certain parameters like NPC ship value, system security status, region, and random numbers are all used to determine what loot gets dropped into the wreck's container when it is killed -- Security status doesn't effect the loot, but it does effect what will spawn. The same with region. Once a ship is spawned, it should be limited to it's loot tables. A Guristas ship shouldn't drop Ammar loot regardless of where it spawns. -- Deslona = <span id="NPC_Artificial_Intelligence" class="mw-headline"> NPC Artificial Intelligence </span> = NPC AI in EVEmu is implemented as a series of [http://www.lua.org/ Lua] scripts that we create to analyze data from surroundings and then process it in some algorithms to make decisions to fly, target, shoot, warp, dock, jump, etc. <br /> <br /> More to follow ;) <br /> = <span id="NPC_Loot_Drops" class="mw-headline"> [[NPC_Loot_Drops.html|NPC Loot Drops]] </span> = Page to assess how the tables and items should be distributed. = <span id="NPC_Spawns" class="mw-headline"> NPC Spawns </span> = Some notes on how to create NPC spawns in the Database follow. We would like to create a Tab section in [[EVEmu_Control_Panel.html|EVEmu Control Panel]] that would make creating spawn groups and spawn entries much easier and much more quickly. * '''TODO''' - Create new EVEmu Control Panel tab called 'Spawn Creator' that allows admin or user to create their own spawn groups, spawn entries, and spawn bounds for the database. There are four tables used to create spawns in EVEmu: {| ! Table ! Description |- | spawnBounds |  ? |- | spawnGroupEntries |  ? |- | spawnGroups |  ? |- | spawns |  ? |} == <span id="spawnBounds" class="mw-headline"> spawnBounds </span> == In this table goes one record for each physical location of a spawn, such as a coordinate in space or perhaps in the future, EVEmu will support a locationID, such as an asteroid belt, station, or stargate. The '''spawnID''' value directly corresponds to the '''spawnID''' in the '''spawns''' table described below. At this time, it is unknown as to what the '''pointIndex''' refers to. Of course, the '''x,y,z''' values are the absolute position in space relative to the sun (0,0,0) in a solar system in which the spawn will be located. Since records in this table do not contain solar system IDs, one can use a record from this table multiple times, once for as many different solar systems as desired, however, absolute (x,y,z) coordinates only make sense for perhaps one system. == <span id="spawnGroupEntries" class="mw-headline"> spawnGroupEntries </span> == This table contains one record for each different type of NPC ship that is spawned for a particular '''spawnGroupID''' that is referenced in the '''spawnGroups''' table and for each entry in the '''spawns''' table. Each record in this table contains the typeID of the NPC ship, the quantity of these ships to be created for this spawn group, and the owner and corporation IDs to assign to these ships. To create a spawn group with multiple ship types, one must create a record in this table for each unique NPC ship typeID in the group. == <span id="spawnGroups" class="mw-headline"> spawnGroups </span> == This table contains one record for each different '''spawnGroup''' whose members are specified in the '''spawnGroupEntries''' table where the records' '''spawnGroupID''' match. Records in this table simply specify the name of each spawn group and the formation they shall conform to when spawned. == <span id="spawns" class="mw-headline"> spawns </span> == This table contains the entire list of spawns all throughout the entire galaxy. One record is created per physical location of a spawn in any solar system, for each solar system, since one must specify the solarSystemID for the spawn record. When creating a spawn record in this table, one must specify a '''spawnID''' that matches one in the '''spawnBounds''' table to specify the physical location in the solar system, a solarSystemID to indicate into which solar system the spawn will appear at the spawnBounds location referenced, the spawnBoundType which is a formation (point, triangle, cube, tetrahedron, etc - see [[#Spawn_Formations|formations]] below), a spawnTimer value in seconds indicating how much time elapses before a spawn occurs, and a minimum and maximum respawn time, both of which are used to randomize how much time elapses before the next spawn occurs. = <span id="Spawn_Formations" class="mw-headline"> Spawn Formations </span> = TBD <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> c2401ad448787d1322e23d290919d825f6149c01 Old Wiki:Category Table Templates 0 50 75 2021-04-03T14:18:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Table Templates <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Table Templates&quot; == The following 6 pages are in this category, out of 6 total. <div class="mw-content-ltr" lang="en" dir="ltr"> === D === * [[Template_DgmEffectsActionsRow.html|Template:DgmEffectsActionsRow]] * [[Template_DgmEffectsInfoRow.html|Template:DgmEffectsInfoRow]] * [[Template_DgmShipBonusModifierRow.html|Template:DgmShipBonusModifierRow]] * [[Template_DgmSkillBonusModifierRow.html|Template:DgmSkillBonusModifierRow]] === T === * [[Template_TableFooter.html|Template:TableFooter]] * [[Template_TableHeader.html|Template:TableHeader]] </div> </div> </div> </div> 74a2e0375b51e1db68cdd541d0e8f36294096348 Old Wiki:Category Templates 0 51 76 2021-04-03T14:18:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Template Categories <div lang="en" dir="ltr"> <div id="mw-subcategories"> == Subcategories == This category has the following 2 subcategories, out of 2 total. <div class="mw-content-ltr" lang="en" dir="ltr"> === F === * [[Category_Formatting_Templates.html|Formatting Templates]] === T === * [[Category_Table_Templates.html|Table Templates]] </div> </div> </div> </div> 9b758a9ad1d8f4de372263616ae0ad77c20420e9 Old Wiki:Category Testing EVEmu 0 52 77 2021-04-03T14:18:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> If you don't want to write code, you can test EVEmu! Just follow directions above under [[Category_Crucible.html|EVEmu Crucible Server]] on the wiki home page to either build from source or get the nightly builds for your machine, modify the client, fire it up and start trying things. Experience with EVE live is very helpful since it will provide you with a reference for how in-game features are supposed to work. Report new bugs only! If you find something that you think is a bug, please search our [http://bugzilla.evemu.net/ bugs database at bugzilla.evemu.net] BEFORE posting a new one to see if it's already been reported. Most of the commonly or easily found bugs have probably already been reported. Please make sure it really is new so we can keep down the number of duplicate bugs. '''More info to be added later''' <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 68097fcaaa9d05e517aea77f6e1b49235e9f9627 Old Wiki:Category The EVEmu Database Guide 0 53 78 2021-04-03T14:18:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / [[Getting_Started.html|Getting Started]] / '''The EVEmu Database Guide''' (you are here) |} <br /> == <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> == See [[Category_EVE_Database.html|the EVE Database article]] for a complete listing of tables both brought in by the official CCP static DB dump as well as those created and maintained by the EVEmu project. == <span id="Database_Table_Types" class="mw-headline"> ''Database Table Types'' </span> == Below is a description of the different table types and a list of tables: '''IndexRowset''' - these are simple keyed tables: <pre> The following tables are in IndexRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ invcategories categoryID invgroups groupID invmetagroups metaGroupID invtypes typeID invbptypes blueprintTypeID dgmattribs attributeID dgmeffects effectID evegraphics graphicID eveunits unitID eveowners ownerID evelocations locationID corptickernames corporationID allianceshortnames allianceID ramaltypes assemblyLineTypeID ramactivities activityID ramcompletedstatuses completedStatusID mapcelestialdescriptions celestialID certificates certificateID certificaterelationships relationshipID locationwormholeclasses locationID</pre> <br /> '''FilterRowset''' - these are accessed as dicts, keyed on the table's &quot;primary key&quot;, and each value is a standard list or an IndexRowset containing the data rows for the key. <pre> The following tables are in FilterRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ dgmtypeeffects typeID dgmtypeattribs typeID invmetatypes typeID invreactiontypes reactionTypeID ramaltypesdetailpercategory assemblyLineTypeID ramaltypesdetailpergroup assemblyLineTypeID ramtyperequirements typeID ramtypematerials typeID</pre> <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 15f5e69b830f55506de0462d664870f069f77ef1 Old Wiki:Category The EVEmu Guide 0 54 79 2021-04-03T14:18:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / [[Getting_Started.html|Getting Started]] / '''The EVEmu Guide''' (you are here) |} {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Purpose_and_Status|<span class="tocnumber">1</span> <span class="toctext">'''Purpose and Status'''</span>]] * [[#At_a_glance|<span class="tocnumber">2</span> <span class="toctext">'''At a glance'''</span>]] * [[#eve-core|<span class="tocnumber">3</span> <span class="toctext">'''eve-core'''</span>]] * [[#eve-common|<span class="tocnumber">4</span> <span class="toctext">'''eve-common'''</span>]] * [[#eve-server|<span class="tocnumber">5</span> <span class="toctext">'''eve-server'''</span>]] * [[#eve-test|<span class="tocnumber">6</span> <span class="toctext">'''eve-test'''</span>]] * [[#eve-xmlpktgen|<span class="tocnumber">7</span> <span class="toctext">'''eve-xmlpktgen'''</span>]] * [[#EVEmu_Server_Support_Tools|<span class="tocnumber">8</span> <span class="toctext">'''EVEmu Server Support Tools'''</span>]] ** [[#EVEmu_Control_Panel|<span class="tocnumber">8.1</span> <span class="toctext">'''EVEmu Control Panel'''</span>]] ** [[#eve-tool|<span class="tocnumber">8.2</span> <span class="toctext">'''eve-tool'''</span>]] |} <br /> == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool.html|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[XML_Packet_Generator.html|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Eve-xmlpktgen.html|eve-xmlpktgen]]''' </span> == The XML Packet Generator (eve-xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''[[Category_EVEmu_Tools.html|EVEmu Server Support Tools]]''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what your doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development, but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool.html|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> faba182faee5a0fde2183ae0801f40a172a81e65 Old Wiki:Category Users Guide 0 55 80 2021-04-03T14:19:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / '''User's Guide''' (you are here) |} <br /> This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [[Category_Game_Operation.html#Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation|this list of deviations from EVE online game play]] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles.html|role assigned to their account]], therefore all characters they create with that account will have GM status. <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> d526ce3398cb2b1b17f3ae170bc053cc874cee1b Old Wiki:Character 0 56 81 2021-04-03T14:19:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="Character" class="mw-headline"> Character_ </span> == Description of the Character_ Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'characterID' | int(10) unsigned | NOT NULL | PRIMARY |- | 'accountID' | int(10) unsigned | NULL | |- | 'title' | varchar(85) | NOT NULL | |- | 'description' | text | NOT NULL | |- | 'bounty' | double | NOT NULL | |- | 'balance' | double | NOT NULL | |- | 'aurBalance' | double | NOT NULL | |- | 'securityRating' | double | NOT NULL | |- | 'petitionMessage' | double | NOT NULL | |- | 'logonMinutes' | int(10) unsigned | NOT NULL | |- | 'skillPoints' | double | NOT NULL | |- | 'skillQueueEndTime' | bigint(20) | NOT NULL | |- | 'corporationID' | int(10) unsigned | NOT NULL | |- | 'corpRole' | bigint(20) unsigned | NOT NULL | |- | 'rolesAtAll' | bigint(20) unsigned | NOT NULL | |- | 'rolesAtBase' | bigint(20) unsigned | NOT NULL | |- | 'rolesAtHQ' | bigint(20) unsigned | NOT NULL | |- | 'rolesAtOther' | bigint(20) unsigned | NOT NULL | |- | 'corporationDateTime' | bigint(20) unsigned | NOT NULL | |- | 'startDateTime' | bigint(20) unsigned | NOT NULL | |- | 'createDateTime' | bigint(20) unsigned | NOT NULL | |- | 'ancesteryID' | int(10) unsigned | NOT NULL | |- | 'careerID' | int(10) unsigned | NULL | |- | 'schoolID' | int(10) unsigned | NOT NULL | |- | 'careerSpecialityID' | int(10) unsigned | NOT NULL | |- | 'gender' | tinyint(4) | NOT NULL | |- | 'stationID' | int(10) unsigned | NOT NULL | |- | 'solarSystemID' | int(10) unsigned | NOT NULL | |- | 'constellationID' | int(10) unsigned | NOT NULL | |- | 'regionID' | int(10) unsigned | NOT NULL | |- | 'online' | tinyint(1) | NOT NULL | |- | 'freeRespecs' | tinyint(1) unsigned | NOT NULL | |- | 'lastRespecDateTime' | bigint(20) unsigned | NOT NULL | |- | 'nextRespecDateTime' | bigint(20) unsigned | NOT NULL | |- | 'deletePrepareDateTime' | bigint(20) unsigned | NULL | |- | 'shipID' | int(10) unsigned | NOT NULL | |} '''Description of the fields''' <br /> ''''characterID'''' The number the character is given. Refers to the [[Entity.html|entity]] table. <br /> ''''accountID'''' The account number making the character. Refers to the [http://wiki.evemu.dev/index.php?title=Account&action=edit&redlink=1 account] table. <br /> ''''title'''' Characters title, if any. <br /> ''''description'''' The self-given in-game description of the character. <br /> ''''bounty'''' Bounty value on this character. <br /> ''''balance'''' ISK this character has. <br /> ''''aurBalance'''' AUR this character has. <br /> ''''securityRating'''' The CONCORD Security Rating this character has. <br /> ''''petitionMessage'''' Any outstanding petition this character has. <br /> ''''logonMinutes'''' Time character has been logged on. <br /> ''''skillPoints'''' Total acquired skill points. <br /> ''''skillQueueEndTime'''' Time the skill Quue will complete. <br /> ''''corporationID'''' The corporation ID this character has joined. Refers to the [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation] table. <br /> ''''corpRole'''' More information needed. <br /> ''''rolesAtAll'''' More information needed. <br /> ''''rolesAtBase'''' More information needed. <br /> ''''rolesAtHQ'''' More information needed. <br /> ''''rolesAtOther'''' More information needed. <br /> ''''corporationDateTime'''' Time the character joined their corporation. <br /> ''''startDateTime'''' Time the character first logged in. (it's the same as createDateTime) <br /> ''''createDateTime'''' Time the character was created. <br /> ''''ancestryID'''' The ancestry of the character. Refers to the [http://wiki.evemu.dev/index.php?title=Chrancestries&action=edit&redlink=1 chrancestries] table. <br /> ''''careerID'''' The career of the character chosen during character creation. Refers to the [http://wiki.evemu.dev/index.php?title=Careers&action=edit&redlink=1 careers] table. <br /> ''''schoolID'''' The school of the character chosen during character creation. Refers to the [http://wiki.evemu.dev/index.php?title=Careers&action=edit&redlink=1 careers] and [http://wiki.evemu.dev/index.php?title=Chrschools&action=edit&redlink=1 chrschools] table. <br /> ''''careerSpecialityID'''' More information needed. <br /> ''''gender'''' 0 = Female, 1 = male <br /> ''''stationID'''' Location of the character if docked in a station. If not this value is 0. Refers to the [[Stastations.html|stastations]] table. <br /> ''''solarSystemID'''' Solar system of the character. Refers to the [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] table. <br /> ''''constellationID'''' Constellation the character is in. Refers to the [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] table. <br /> ''''regionID'''' Region the character is located. Refers to the [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] table. <br /> ''''online'''' If the character is online or not. 0 = Offline. <br /> ''''freeRespecs'''' Number of attribute repecs remaining on this character. <br /> ''''lastRespecDateTime'''' Default value is 0 <br /> ''''nextRespecDateTime'''' Default value is 0 <br /> ''''deletePrepareDateTime'''' Default value is 0. When a character can be deleted on the log-on screen. <br /> ''''shipID'''' The entity number for the current active ship. Refers to the [[Entity.html|entity]] table. </div> 065bb032e5354c91f928d042745eb43610f88e15 Old Wiki:Chrstandings 0 57 82 2021-04-03T14:19:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Description of the Chrstandings Table in the EVEmu [[Category_EVE_Database.html|database]]. This is the relationship between the PLAYER and the NPC. {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'characterID' | int(10) | NOT NULL | PRIMARY |- | 'toID' | int(10) | NOT NULL | PRIMARY |- | 'standing' | double int(11) | NOT NULL | |} '''Description of the fields''' <br /> ''''characterID'''' The characterID for the complete list refer to [[Character.html|character_]] <br /> ''''toID'''' The database ID of the Corporation or Agent. This can be found in [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation] or [http://wiki.evemu.dev/index.php?title=Agtagents&action=edit&redlink=1 agtagents] or even [[Character.html|character_]] <br /> ''''standing'''' Value of the standing. 0 or empty being neutral. </div> edb1fa2645964501e46d69c92cf721acd09a2746 Old Wiki:Configuring and Running the Server 0 58 83 2021-04-03T14:19:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Server_Configuration|<span class="tocnumber">1</span> <span class="toctext">Server Configuration</span>]] ** [[#Directory_Setup|<span class="tocnumber">1.1</span> <span class="toctext">Directory Setup</span>]] ** [[#File_Setup|<span class="tocnumber">1.2</span> <span class="toctext">File Setup</span>]] *** [[#Database_Tag_Changes|<span class="tocnumber">1.2.1</span> <span class="toctext">Database Tag Changes</span>]] *** [[#Net_Tag_Changes|<span class="tocnumber">1.2.2</span> <span class="toctext">Net Tag Changes</span>]] *** [[#Files_Tag_Changes|<span class="tocnumber">1.2.3</span> <span class="toctext">Files Tag Changes</span>]] *** [[#Keeping_The_Server_Updated|<span class="tocnumber">1.2.4</span> <span class="toctext">Keeping The Server Updated</span>]] ** [[#Finishing_Notes|<span class="tocnumber">1.3</span> <span class="toctext">Finishing Notes</span>]] *** [[#Windows|<span class="tocnumber">1.3.1</span> <span class="toctext">Windows</span>]] *** [[#Linux|<span class="tocnumber">1.3.2</span> <span class="toctext">Linux</span>]] |} = <span id="Server_Configuration" class="mw-headline"> Server Configuration </span> = '''NOTE:''' This guide assumes directory structure created in Compiling with CMake guide. To get the server up and running correctly, you will need to put various files in the correct places, and make modifications to some of them. == <span id="Directory_Setup" class="mw-headline"> Directory Setup </span> == <pre>1. Browse to C:\evemu, create the folders bin, etc, log and server_cache 2. Copy eve-server.exe from C:\evemu\build\src\eve-server to C:\evemu\bin 3. Copy libmysql.dll from C:\evemu\mysql\lib\opt to C:\evemu\bin 4. Copy eve-server.xml from C:\evemu\source\utils to C:\evemu\etc.</pre> == <span id="File_Setup" class="mw-headline"> File Setup </span> == Browse to ''C:\evemu\log'' and create empty text file named ''eve-server.log''. Browse to ''C:\evemu\etc'' and create empty text file named ''log.ini'' '''OR''' download the sample ''log.ini'' file under '''Attachements''' at the bottom of this page. After that go to ''C:\evemu\etc'' and open ''eve-server.xml'' in your favourite text editor, You will need to change 2 sets of setting(seperated by &lt;&gt; tags)(there are many optional settings to mess around, '''if''' you know what you are getting your hands into). We will assume you have followed the previous step of [DatabaseSetup setting up the database] and we will go ahead and show an '''example''' of the needed changes (Remember:Every set up is different so use your own setting and don't copy and paste): === <span id="Database_Tag_Changes" class="mw-headline"> Database Tag Changes </span> === Default: <br /> * &lt;database&gt; * &lt;host&gt;127.0.0.1&lt;/host&gt; * &lt;username&gt;eve&lt;/username&gt; * &lt;password&gt;eve&lt;/password&gt; * &lt;db&gt;eve&lt;/db&gt; * <span class="tex2jax_ignore">&lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt;</span> * &lt;/database&gt; <br /> Example(You will need to insert your own MySQL username and password),(Please make sure a password is set or client will stop after trying to connect): <br /> * &lt;database&gt; * &lt;host&gt;127.0.0.1&lt;/host&gt; * &lt;username&gt;root&lt;/username&gt; * &lt;password&gt;password&lt;/password&gt; * &lt;db&gt;evemu&lt;/db&gt; * <span class="tex2jax_ignore">&lt;!--&lt;port&gt;3306&lt;/port&gt;--&gt;</span> * &lt;/database&gt; === <span id="Net_Tag_Changes" class="mw-headline"> Net Tag Changes </span> === Default: * &lt;net&gt; * <span class="tex2jax_ignore">&lt;!-- &lt;port&gt;26001&lt;/port&gt; --&gt;</span> * &lt;/net&gt; Example(Must be 26000): * &lt;net&gt; * &lt;port&gt;26000&lt;/port&gt; * &lt;/net&gt; === <span id="Files_Tag_Changes" class="mw-headline"> Files Tag Changes </span> === Defailt: * &lt;files&gt; * <span class="tex2jax_ignore">&lt;!-- &lt;log&gt;../log/eve-server.log&lt;/log&gt; --&gt;</span> * <span class="tex2jax_ignore">&lt;!-- &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; --&gt;</span> * <span class="tex2jax_ignore">&lt;!-- &lt;cacheDir&gt;&lt;/cacheDir&gt; --&gt;</span> * &lt;/files&gt; <br /> Example: * &lt;files&gt; * &lt;log&gt;../log/eve-server.log&lt;/log&gt; * &lt;logSettings&gt;../etc/log.ini&lt;/logSettings&gt; * &lt;cacheDir&gt;../server_cache&lt;/cacheDir&gt; * &lt;/files&gt; Here, the '''../log/eve-server.log''' will contain the text from the eve-server console window. The '''../etc/log.ini''' file contains settings to control how eve-server outputs messages to the log. We need more definition as to what goes in this file. Finally, the '''../server_cache''' directory is where the server will create files for all cached objects when the server starts up. '''NOTE:''' If any cached database tables change during server down-time, you MUST delete ALL cache files in this directory BEFORE starting up the server again. The server does not check to see if the tables changed. === <span id="Keeping_The_Server_Updated" class="mw-headline"> Keeping The Server Updated </span> === The Evemu core updates very often. To keep your server up to date with the current Evemu revision; you must perform a simple core update and recompile. 1. Use your favorite git gui or the git command line to keep your source up to date 2. Re-run CMake just in case new files were added or old files were removed. 3. You must now rebuild you solution to actually see the changes in game. 4. Run the &quot;evemu&quot; sln with C++ and rebuild the solution **MUST BE SET ON 'DEBUG' or 'RELEASE' (the question of your choise - for now is just a size of exe file on exit. No any stability or workability differences for now,except of some crashes,caused by svcerror and beancount errors on release binary ** 5. Congratulations! Your core is now updated. Do this often to ensure your revision is the current one. == <span id="Finishing_Notes" class="mw-headline"> Finishing Notes </span> == '''NOTE: Tutorials are NON-functioning and WILL cause your client to hang at the infamous &quot;black screen&quot;, so DISABLE your tutorials by hitting ESC key, then going under General Settings and uncheck the box next to Show Tutorials.''' === <span id="Windows" class="mw-headline"> Windows </span> === Then you should be able to run ''eve-server.exe'' to start the server. The server log will be stored in ''C:\evemu\log\eve-server.log'' if you need it. Wait for the message : &quot;Init Done&quot; before initiating any action associated with the server(Even opening a client). [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 See here] for an old forum thread that discusses eve-server restart scripts in the cases where the server crashes, somewhere down the page is a script for windows. === <span id="Linux" class="mw-headline"> Linux </span> === You can just run the eve-server executable in your build directory, or you can use a script to run it, even to restart it if it ever crashes. [http://evemu.sourceforge.net/forums/viewtopic.php?t=470 Here is a forum thread] that lists several different scripts on how the eve-server can be restarted if it crashes. </div> 7b2c3d2596657f0e435dedea77497ddbcb307cf6 Old Wiki:Contract System 0 59 84 2021-04-03T14:19:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> This is just a copy of my local contract system documentation: <pre>/********************** * contractMgrService * **********************/ ContractMgrService::Handle_NumRequeringAttention Should return a PyDict with 2 values |-&gt; n = Number of contracts that requires attention and are not from corp \-&gt; ncorp = Number of contracts that requires attention and are from corp It's called at the &quot;entering the station sequence&quot; and makes the contract icons to blink ContractMgrService::Handle_CollectMyPageInfo Should return a PyDict with this data: |-&gt;numOutstandingContractsNonCorp = ChrContractInfo.numOutstandingContractsNonCorp |-&gt;numOutstandingContractsForCorp = ChrContractInfo.numOutstandingContractsForCorp |-&gt;numOutstandingContracts = ChrContractInfo.numOutstandingContracts |-&gt;numOutstandingContractsLeft = ChrContractInfo.numOutstandingContractsLeft |-&gt;numRequiresAttention = ChrContractInfo.numRequiresAttention |-&gt;numRequiresAttentionCorp = ChrContractInfo.numRequiresAttention |-&gt;numAssignedTo = ChrContractInfo.numAssignedTo |-&gt;numAssignedToCorp = ChrContractInfo.numAssignedToCorp |-&gt;numBiddingOn = ChrContractInfo.numBiddingOn |-&gt;numInProgress = ChrContractInfo.numInProgress |-&gt;numBiddingOnCorp = ChrContractInfo.numBiddingOnCorp \-&gt;numInProgressCorp = ChrContractInfo.numInProgressCorp ContractMgrService::Handle_NumOutstandingContracts Should return ChrContractInfo.numOutstandingContracts ContractMgrService::Handle_GetItemsInStation Im not completely sure as i havent time to do some test with this but maybe the client sends a INT with the station where look at return all the items in the station, if not arg is given return the items in the actual station ContractMgrService::Handle_CreateContract Should return a PyInt with the id of the contract It's called when Finish button of Create Contract form is pressed The client sends those args: &lt;elementDef name=&quot;Call_CreateContract&quot;&gt; &lt;tupleInline&gt; &lt;int name=&quot;type&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;avail&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;assigneeID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;expiretime&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;duration&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;startStationID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;endStationID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;long name=&quot;price&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;long name=&quot;collateral&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;long name=&quot;reward&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;wstring name=&quot;title&quot; none_marker=&quot;0&quot; /&gt; &lt;string name=&quot;description&quot; none_marker=&quot;0&quot;/&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; Also the client sends a sub-call part with some useful PyDicts and ints: |-&gt;requestItemTypeList = PyDict, contains typeID and quantity of items requested |-&gt;flag = INT, contains the flag of the items selected, maybe it can be a dict too ? |-&gt;itemList = PyDict, contains itemID and quantity of items that the user will give, those need to be moved from the user's hangars \-&gt;forCorp = BOOL, indicates if the contract is for corp or for character Steps for create a contract: Step 1: Check if the client has contracts left from ChrContractInfo, if not return false Step 2: Create a &quot;crate&quot;( cargo container or something like ? ) with location in the current station and ownerID = 1 Step 3: Read one by one the ids of the itemList and do this with each one Step 3.1: Get the volume of the item and add it to general volume of the contract Step 3.2: Change the location of the item to the crate created recently Step 3.3: Add the basic item data to ContractItems with get = false, inCrate = crateID created in Step 1 Step 4: Read one by one the ids of the requestItemTypeList and do this with each one Setp 4.1: Add the basic item data to ContractItems with get = true and itemID = false Step 5: Add the contract information to ContractInfo Step 6: Update the ChrContractInfo table, so reflects one more contract Step 7: Return the contractID of the contract to the client ContractMgrService::Handle_GetContract The client will send a single Integer Arg Should return a dict with these values: |-&gt;contract = ContractInfo WHERE contractID = arg |-&gt;items = ContractItems WHERE contractID = arg \-&gt;bids = ContractBids WHERE contractID = arg ContractMgrService::Handle_DeleteContract The client will send these args: &lt;elementDef name=&quot;Call_DeleteContract&quot;&gt; &lt;tupleInline&gt; &lt;int name=&quot;contractID&quot; /&gt; &lt;!-- Never should be null/none--&gt; &lt;objectInline&gt; &lt;!-- Not sure for what we need this info --&gt; &lt;stringInline value=&quot;util.KeyVal&quot; /&gt; &lt;tupleInline&gt; &lt;int name=&quot;type&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;avail&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;assigneeID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;expiretime&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;duration&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;startStationID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;endStationID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;long name=&quot;price&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;long name=&quot;collateral&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;long name=&quot;reward&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;wstring name=&quot;title&quot; /&gt; &lt;string name=&quot;description&quot; /&gt; &lt;/tupleInline&gt; &lt;/objectInline&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; Should return true or false if the contract was/wasn't deleted First it should check that the contract information in the DB is equal to the contract information sent by client If is equal Get the crate ID and delete it without deleting the items Get all the items from ContractItems WHERE contractID = contractID sent by the client AND get = false Change the location of the item to ContractInfo.locationID so the items come back to your hangar Delete all the items from ContractItems WHERE contractID = contractID sent by the client Update the ChrContractInfo data for issuerID of the contract depending on forCorp value and more: // These queryes can't fail if the DB is correctly installed so we don't need to check them if( ( requiresAttention ) &amp;&amp; ( !forCorp ) )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET requiresAttention=requiresAttention-1 WHERE characterID=%d&quot;, contractOwnerID); if( ( requiresAttention ) &amp;&amp; ( forCorp ) )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET requiresAttentionCorp=requiresAttentionCorp-1 WHERE characterID=%d&quot;, contractOwnerID); if( ( isAccepted ) &amp;&amp; ( !forCorp ) )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numInProgress=numInProgress-1 WHERE characterID=%d&quot;, acceptorID); if( ( isAccepted ) &amp;&amp; ( forCorp ) )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numInProgressCorp=numInProgressCorp-1 WHERE characterID=%d&quot;, acceptorID); if( !forCorp )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numOutstandingContractsNonCorp=numOutstandingContractsNonCorp-1 WHERE characterID=%d&quot;, contractOwnerID); if( forCorp )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numOutstandingContractsForCorp=numOutstandingContractsForCorp-1 WHERE characterID=%d&quot;, contractOwnerID); sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numOutstandingContracts=numOutstandingContracts-1 WHERE characterID=%d&quot;, contractOwnerID); Delete the contract info and return true to the client If is not equal SendNotifyMessage like: &quot;The contract has changed, please review these changes first&quot; Return false to the client ContractMgrService::Handle_GetContractListForOwner The client will send these args: &lt;elementDef name=&quot;Call_GetContractListForOwner&quot;&gt; &lt;tupleInline&gt; &lt;int name=&quot;characterID&quot; /&gt; &lt;int name=&quot;status&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;contractType&quot; none_marker=&quot;0&quot; /&gt; &lt;bool name=&quot;isAccepted&quot; none_marker=&quot;false&quot; /&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; First it should check for ContractInfo WHERE issuerID = characterID AND status = status AND type = contractType AND isAccepted = isAccepted and fetch it from the DB Now should read all the contractIDs from the last query and fetch ContractItems WHERE contractID = ContractInfo.contractID Should return a dict with these values: |-&gt;contract = First query \-&gt;items = Second query ContractMgrService::Handle_GetContractList The client will send these args: &lt;elementDef name=&quot;Call_GetContractList&quot; &gt; &lt;tupleInline&gt; &lt;int name=&quot;type&quot; /&gt; &lt;string name=&quot;title&quot; /&gt; &lt;int name=&quot;priceMin&quot; /&gt; &lt;int name=&quot;priceMax&quot; /&gt; &lt;int name=&quot;issuedByIDs&quot; /&gt; &lt;int name=&quot;assigneeID&quot; /&gt; &lt;int name=&quot;stationID&quot; /&gt; &lt;int name=&quot;solarSystemID&quot; /&gt; &lt;int name=&quot;regionID&quot; /&gt; &lt;int name=&quot;itemTypeID&quot; /&gt; &lt;int name=&quot;itemCategoryID&quot; /&gt; &lt;int name=&quot;itemGroupID&quot; /&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; Should return a dict with these values: |-&gt;contract = All the contract that fits the filters |-&gt;items = All items for every contract that fits the filters \-&gt;bids = All the bids for every contract that fits the filers ContractMgrService::Handle_AcceptContract The client will send these args: &lt;elementDef name=&quot;Call_AcceptContract&quot;&gt; &lt;tupleInline&gt; &lt;int name=&quot;contractID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;bool name=&quot;unknown&quot; none_marker=&quot;false&quot; /&gt;&lt;!-- isAccepted status from the contract? --&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; Should check first if the contract isAccepted, if not do this query; UPDATE ContractInfo SET isAccepted=1, acceptorID=%d, status=1, dateAccepted=&quot;I64u&quot; WHERE contractID=%d&quot;, call.client-&gt;GetCharacterID(), Win32Time_Now, contractID Also the acceptor should pay the collateral Should return true or false ContractMgrService::Handle_CompleteContract The client will send these args: &lt;elementDef name=&quot;Call_CompleteContract&quot;&gt; &lt;tupleInline&gt; &lt;int name=&quot;contractID&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt; &lt;int name=&quot;status&quot; default=&quot;0&quot; none_marker=&quot;0&quot; /&gt;&lt;!-- contract status?--&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; status values: status = 7 -&gt; Failed status = 6 -&gt; Rejected status = 4 -&gt; Completed The call should change the ChrContractInfo according to status( sent by the client ) and change the status value from ContractInfo WHERE contractID = contractID sent by the client If status = complete contract you should check for all the items and conditions to accomplish before moving any money or changing the contract info if( ( unknown != 7 ) &amp;&amp; ( unknown != 6 ) &amp;&amp; ( unknown != 4 ) ) { if( forCorp ) { sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numRequiresAttentionCorp=numRequiresAttentionCorp+1 WHERE characterID=%d&quot;, contractOwnerID); }else{ sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numRequiresAttention=numRequiresAttention+1 WHERE characterID=%d&quot;, contractOwnerID); } } if( unknown == 4 ) { if( forCorp )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numOutstandingContractsForCorp=numOutstandingContractsForCorp-1 WHERE characterID=%d&quot;, contractOwnerID); else sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numOutstandingContractsNonCorp=numOutstandingContractsNonCorp-1 WHERE characterID=%d&quot;, contractOwnerID); sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numOutstandingContracts=numOutstandingContracts-1 WHERE characterID=%d&quot;, contractOwnerID); } if( forCorp )sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numInProgressCorp=numInProgressCorp-1 WHERE characterID=%d&quot;, acceptorID); else sDatabase.RunQuery(err, &quot;UPDATE chrcontractinfo SET numInProgress=numInProgress-1 WHERE characterID=%d&quot;, acceptorID); /********************** * DATABASE INFO * **********************/ ContractInfo: Should have all the main data of the contract: uint32 contractID; uint32 issuerID; -&gt; Character who created the contract uint32 issuerCorpID; -&gt; If the contract is for corp this will be the corporationID of the character who created this contract uint32 type; -&gt; contract type, is sent by the client uint32 avail; -&gt; Indicates if the contract is public or private uint32 assigneeID; -&gt; If the contract was asigned by the characterID to another character this will be the characterID who is assigned to uint32 expiretime; -&gt; Time in Win32 format of the duration of the contract uint32 duration; -&gt; Should be the number of days before contract expiration, anyway its send by the client as 0, maybe should be expiretime / Win32_Day uint32 startStationID; -&gt; Station where the contract was created uint32 endStationID; -&gt; Station where the items should be delivered if loan contract is selected uint32 startSolarSystemID; -&gt; Solar system where the contract was created uint32 endSolarSystemID; -&gt; Solar system where the items should be delivered if loan contract is selected uint32 startRegionID; -&gt; Region where the contract was created uint32 endRegionID; -&gt; Region where the items should be delivered if loan contract is selected double price; -&gt; Cost of the items or start of the bid if applicable double reward; -&gt; Money will be given when the contract is completed double collateral; -&gt; Quantity of ISK the acceptor will pay when accepting the contract std::string title; -&gt; Title of the contract, im not sure but i think this needs to be generated by the server std::string description; -&gt; Description of the contract sent by the client bool forCorp; -&gt; Indicates if the contract is for a corp or for a character uint32 status; -&gt; Status of the contract, 0 when contract is created bool isAccepted; -&gt; If the contract is accepted by someone this should be true uint32 acceptorID; -&gt; The characterID who accepted the contract uint64 dateIssued; -&gt; Date when the contract was created uint64 dateExpired; -&gt; Date when the contract will expire if not accepted uint64 dateAccepted; -&gt; If the contract is Accepted the date when the character accepted the contract uint64 dateCompleted; -&gt; When the contract was completed, before deletion double volume; -&gt; The total volume of the items if the contract is loan bool requiresAttention; -&gt; If the contract has recently changed and the creator needs to see these changes( like acception, rejection, etc )this should be true, when the creator sees the changes this should be false uint32 allianceID; -&gt; AllianceID of the character who created the contract uint32 issuerWalletKey; -&gt; Not sure how this should work as is part of the corporation system uint32 crateID; -&gt; ID of the &quot;crate/cargo container ?&quot; where the items are placed ContractItems: Should have all the main data of the items, and some info of the blueprint( if applicable ) uint32 id; -&gt; Indexing purposes uint32 itemID; -&gt; If the item is given by the contract creator should point to the itemID of the item uint32 contractID; -&gt; ID uint32 quantity; -&gt; Quantity of this item uint32 flag; -&gt; Normally Hangar Flag, indicates where the item was got uint32 typeID; -&gt; typeID of the item in invTypes uint32 ownerID; -&gt; If the item is given by the contract creator should point to the characterID who created the contract uint32 inCrate; -&gt; ID of the crate where the item is if applicable uint32 bpRuns; -&gt; blueprint specific uint32 parentID; -&gt; Dont know what this is used for, also blueprint specific ? bool get; -&gt; if the item is requested or given by the contract creator ContractBids: Not sure if this is correct, but should be something like this: uint32 bidID; -&gt; Indexing purposes uint32 contractID; -&gt; contractID to wich the bid is uint32 issuerID; -&gt; characterID of the bidder double quantity; -&gt; Quantity of ISK bidded uint32 issuerCorpID; -&gt; corporationID of the bidder uint32 issuerStationID; -&gt; stationID of the bidder uint32 issuerSolarSystemID; -&gt; solarSystemID of the bidder uint32 issuerRegionID; -&gt; regionID of the bidder ChrContractInfo: These fields are completely confirmed: uint32 characterID; uint32 numOutstandingContractsNonCorp; uint32 numOutstandingContractsForCorp; uint32 numOutstandingContracts; uint32 numContractsLeft; uint32 numRequiresAttention; uint32 numRequiresAttentionCorp; uint32 numAssignedTo; uint32 numAssignedToCorp; uint32 numBiddingOn; uint32 numInProgress; uint32 numBiddingOnCorp; uint32 numInProgressCorp; </pre> </div> 6e0f9dea39a01ae5bb1115421ac1bdbf4301c178 Old Wiki:Crucible FAQ 0 60 85 2021-04-03T14:19:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="Previous_Version_FAQs" class="mw-headline"> Previous Version FAQs </span> = Before moving to more recently found common problems, please review the previous release FAQs: * [[Incursion_FAQ.html|Incursion FAQ]] * [[Apocrypha_FAQ.html|Apocrypha FAQ]] = <span id="Known_Issues" class="mw-headline"> Known Issues </span> = == <span id="I_tried_to_create_a_character_and_it_failed.2C_now_the_server_keeps_crashing_or_I_have_other_problems" class="mw-headline"> I tried to create a character and it failed, now the server keeps crashing or I have other problems </span> == A. No doubt something went wrong on the server side. Try these things to resolve the issue: * Clear the client settings files, all of them, by clicking the Reset Settings and Reset Cache buttons in the client ESC window * Rebuild your database completely from scratch </div> 4fb03b8273f8d60c14cd7321b1b3e980e707b92f Old Wiki:Destiny 0 61 86 2021-04-03T14:20:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Destiny Information &quot;Destiny&quot; is CCP's name for the EVE renderer. EVEmu needs to care about this because, at least so far, the server sends the client some sort of data blocks in the 'state' field of DoDestinyUpdate? notifications which get fed directly into the destiny DLL. The overall content of these destiny state streams is basically information about entities in the current system being entered (stations, planets, moons, asteroid belts, players, etc), including their position and some other paremeters about them. After significant effort, I have figured out that these streams are compressed. It looks like they wrote their own little mini-run-length-encoding compression algorithm to compress out all of the zero-bytes in the stream. This is now implemented in EVEZeroCompress.cpp/h. The run length is limited to 7 or 8 bytes, and the classes are zero/non-zero. They use an octet to contain two opcodes, and its not garunteed to alternate between data classes, if one stream of a single class of bytes is encoded, then you generate a new opcode every 7 or 8 bytes. This can lead to expansion of the stream if there are few/no zeros in it. I have not seen any indication that they will check for inflation like this and just not run it through the compression. It seems that a field is inherently compressed like this by specifics in their code, as I have not seen logic dictating when this compression is expected/generated and when it is not. CCP Ship Physics Info Movement <pre>EVE-wiki Acceleration</pre> </div> 6b20c06fc4aefd89b191e3f978e93f6ff9474429 Old Wiki:Development Practices 0 62 87 2021-04-03T14:20:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / '''Development Practices''' (you are here) |} <br /> '''This page is devoted to describing the best practices, methods, and policies that EVEmu Developers espouse to uphold while working on the EVEmu Project. All Developers are expected to follow these guidelines and policies all in the effort to ensure a smoothly executed development process and collaborative effort to produce great quality code and a great product.''' {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Source_Control|<span class="tocnumber">1</span> <span class="toctext">Source Control</span>]] * [[#Coding_Styles_and_Standards|<span class="tocnumber">2</span> <span class="toctext">Coding Styles and Standards</span>]] * [[#Bug_Reporting|<span class="tocnumber">3</span> <span class="toctext">Bug Reporting</span>]] * [[#Forum_Wiki_IRC_and_Voice_Chat_Ettiquete|<span class="tocnumber">4</span> <span class="toctext">Forum Wiki IRC and Voice Chat Ettiquete</span>]] |} = <span id="Source_Control" class="mw-headline"> Source Control </span> = TODO: describe how we use github, git, repos, branches, tags, and merges. '''GIT''': * Our process for developers to contribute: *# Get your '''own''' account on '''Github''' and '''Fork''' the [http://www.github.com/evemuproject evemuproject] repository for which you wish to contribute (evemu_server, evemu_control_panel, etc) *# Git clone your fork on github to your local machine - [https://help.github.com/articles/fork-a-repo Github's help on forking a repo and cloning it] *# Make some changes to code as you work on a feature implementation, enhancement, or bug fix *# Commit those changes with a descriptive commit message (see below at '''Commits''') *# If the feature is not working yet because you have more changes to make, repeat the previous two steps until you have something worth posting up for the community to review and try out *# When you're ready to post a bundle of commits as a Pull Request, first, exit Visual Studio, then RE-run CMake Configure then Generate. Open Visual Studio again and do a FULL REBUILD of the '''ALL_BUILD''' project. When the build is finished, run the server and in the console window, ensure the '''version:''' reads the latest tag, the master branch, and your latest commit ID, something like '''0.7.12-master-ba5d6d3'''. The first three numbers are the tag (at git cmd line, type '''git tag''' to list all tags, see which is highest). The middle string is your branch (should be master unless you're working on a parallel branch). The last is your latest commitID (at git cmd line, type '''git log --oneline''' and at top of that list on the left is your latest commitID showing the first 7 digits or so). *# After you've ensured your build matches the latest tag and commitID, go to your Github account page under your fork of the repository you're working on, then either click on the green square button to the left of the branch change drop-down (below the # of commits display) OR click on the label '''Pull Request''' to the upper right of the area that lists the folders and files in your repository. It's to the left of a label '''Compare''' in the heading bar above the list of files and folders. *# Next, click the button with blue box border labeled '''Click to create a pull request for this comparison''' *# Right away, Github gives you feedback on whether the maintainers of the repository to which you're pushing a pull request will be able to automatically merge your pull request's changes. If you don't get the green check mark and the message '''Able to merge''', then you'll need to bring your fork up to date with the original repository and try again. *# If you do get the green check, enter a Title and Description for your pull request and click '''Send Pull Request''' button and away it goes! *# Please be patient as it will take some time for the EVEmu Development team to review and discuss, perhaps even test, your pull request's changes. It may even be rejected, but the team will provide some helpful comments on the pull request whether it has been rejected or not. These things are often an iterative process, so be patient and be prepared to expect to have to make further changes before the development team accepts the pull request. The higher quality code changes you make and the more you discussed the changes with developers ahead of submitting the pull request, the more likely your pull request may be accepted on the first round after some review period. '''Commits''': * when making commits, keep them small, a few files or so, and commit OFTEN! this leaves you nice history of your work as it progresses * when making commits, either use a GUI such as '''[http://www.syntevo.com/smartgithg/ SmartGitHg]''' or '''[http://www.youtube.com/watch?v=oyQ05jsqakg git gui]''' to write your commit messages, stage files for commit, and ultimately commit the changes and even push them up to your fork for issuance of a pull request to the main evemuproject project page * write commit messages that make sense and are descriptive enough to tell others what you did and why ** BAD Commit message: '''i changed some code''' ** MEH Commit message: '''i added some classes to the module manager''' ** BEST Commit message: '''Added Effects, EffectsMap, and ShipBonusModifierMap classes to the ModuleManager effort. Updated SQL files for the following tables 'dgmEffectsInfo', 'dgmShipBonusModifiers' to match the data pulled and reformatted from EVEHQ CSV files. Added completed LibreOffice spreadsheets for the following EVEHQ CSV files: Effects.ods, ShipBonuses.ods, SkillBonuses.ods''' * when making commits as part of a larger effort, such as to fix Private Convos in the LSC system, or implement P2P trades in the Trade Service, keep your commits local until you have a feature working, then post up a pull request with a bundle of commits rather than posting pull requests for each small commit you make = <span id="Coding_Styles_and_Standards" class="mw-headline"> Coding Styles and Standards </span> = While we do not have a formal coding style guide, let me put it as simply as I can: * Please stay within the spirit of the design and styles that you see already being used in the code, to the extent that you can. * Please do not do major edits of whitespace all over (changing tabs to 4-space chunks, making separation between functions 2 lines instead of one, etc) * Please do not make large edits of comments, but rather keep them compartmentalized into sections of code, such as within the LSC chat system or Ship class <br /> = <span id="Bug_Reporting" class="mw-headline"> Bug Reporting </span> = '''[http://bugs.evemu.net/ BUG TRACKER]''' Our bug tracking website is here and uses bugzilla. '''IMPORTANT''' - Before posting a bug, please take a few minutes to search the bug database for the project you're working on to see if someone else already reported the bug. If this is similar to another bug or bugs, we can link them together, but it's ok to post a new bug if there are aspects about it that are unique from the other similar bug reports. Please post bugs using the following format, [https://github.com/evemuproject/evemu_server/issues/62 for which this report by me is a good example] * '''PROBLEM''' ** Describe what the problem is and what you were doing when it occurred. Please post server console log in [http://www.levelbelow.net/pasetbin EVEmu's Pastebin] and mark expiration as NEVER, then post a link to that pastebin in this section. Feel free to upload to [http://imgur.com/ imgur.com] or other photo sharing site a screenshot of the client if applicable when something weird or unexpected happens and link to the image in this section. * '''STEPS TO REPRODUCE''' ** In this section, please describe in as best a detail and accuracy as you can the steps someone else must take in order to reproduce this problem. It is absolutely essential that developers and bug fixers have these steps as they must be able to reproduce the bugs or crashes in order to start investigating them and eventually fix them. We certainly understand if you cannot recall or are somehow unable to describe how the problem occurred. If that is the case, please do your best in describing how you came about the crash or bug and what you were doing leading up to when it happened. * '''WORKAROUNDS''' ** This section is meant to capture known methods by which you can accomplish what you were trying to do, but in a slightly different way. An example could be &quot;I was trying to buy something off the market, but opening up the market window crashed the server.&quot; For this, a possible effective workaround would be &quot;I can still use .create GM command to give myself the item I wanted.&quot; * '''PROPOSED SOLUTIONS''' ** This section is really reserved for developers posting bugs that may be somewhat or very familiar with the systems behind the scenes in the server that relate to the bug or crash. This section is meant to be a notepad of sorts to jot down ideas as to how the problem could be fixed or circumvented when they are fresh in the mind of the developer that encountered the bug or crash. Most users and testers may leave this blank unless you think you have a good idea :) <br /> = <span id="Forum_Wiki_IRC_and_Voice_Chat_Ettiquete" class="mw-headline"> Forum Wiki IRC and Voice Chat Ettiquete </span> = how we treat each other when communicating </div> cd29fbe8cf262255c9477d0e87eb9947e760cf6e Old Wiki:Development Team 0 63 88 2021-04-03T14:20:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / '''Development Team''' (you are here) |} <br /> == <span id="EvEMU_Developers" class="mw-headline"> EvEMU Developers </span> == === <span id="Current_Main_Developers" class="mw-headline"> Current Main Developers </span> === ==== <span id="ACTIVE" class="mw-headline"> ACTIVE </span> ==== * [Senior Developer] Aknor_Jaden * [Assistant Developer] ozatomic * [Assistant Developer] Reve ==== <span id="INACTIVE" class="mw-headline"> INACTIVE </span> ==== * [Senior Developer] Bloody.Rabbit * [Senior Developer] Captnoord (Co-Founder Per Say) * [Senior Developer] Luck === <span id="Part-Time_Developers_.28Patch_Stuff_Mostly.29" class="mw-headline"> Part-Time Developers (Patch Stuff Mostly) </span> === * Almamu === <span id="Past_Developers" class="mw-headline"> Past Developers </span> === * Beast * Zhur (Founder, is MIA) == <span id="EvEMU_Control_Panel_Developers" class="mw-headline"> EvEMU Control Panel Developers </span> == === <span id="Current_Main_Developers_2" class="mw-headline"> Current Main Developers </span> === * Hurracane (Founder) </div> 5bd464b454cde2201465b7e172fe821952fe34c4 Old Wiki:Entity 0 64 89 2021-04-03T14:20:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="entity" class="mw-headline"> entity </span> == Description of the entity Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'itemID' | int(10) unsigned | NOT NULL | PRIMARY |- | 'itemName' | varchar(85) | NOT NULL | |- | 'typeID' | int(10) unsigned | NOT NULL | |- | 'ownerID' | int(10) unsigned | NOT NULL | |- | 'locationID' | int(10)unsigned | NOT NULL | |- | 'flag' | int(10) | NOT NULL | |- | 'contraband' | int(10) unsigned | NOT NULL | |- | 'singleton' | int(10) unsigned | NOT NULL | |- | 'quantity' | int(10) unsigned | NOT NULL | |- | 'x' | double | NOT NULL | |- | 'y' | double | NOT NULL | |- | 'z' | double | NOT NULL | |- | 'customInfo' | text | NULL | |} <br /> '''Description of the fields''' <br /> ''''itemID'''' This is each item/character/NPC's ID in the table. Incremental for every offer. Several tables refer to this number. <br /> ''''itemName'''' The name of the item. <br /> ''''typeID'''' The typeID of the item/character/NPC given. Refers to the [[Invtypes.html|invtypes]] table. <br /> ''''ownerID'''' The owner of item/character/NPC. This would refer to a previous itemID. <br /> ''''locationID'''' The in-station or solar-system location if applicable. This value can be 0. Refers to the [[Stastations.html|stastations]] or [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] table. <br /> ''''flag'''' The flagID. Refers to [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags]. <br /> ''''contraband'''' More information needed. <br /> ''''singleton'''' More information needed. <br /> ''''quantity'''' The quantity of the item (if in a stack) <br /> ''''x'''' The 'x' location if in space. <br /> ''''y'''' The 'y' location if in space. <br /> ''''z'''' The 'z' location if in space. <br /> ''''customInfo'''' Server generated info about the item. </div> e12f827ad6fa2796339810e5f1873c5d2d3932c0 Old Wiki:Eve-common 0 65 90 2021-04-03T14:20:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> The eve-common project handles these major pieces of the EVEmu server: * [[Object_caching.html|Object caching]] * MySQL Database Query Result Formation? * Client Connection Sessions? * [[Receiving_and_Decoding_Packets_incoming_from_Clients.html|Receiving and Decoding Packets incoming from Clients]] * Encoding and Transmitting Packets outgoing to Clients? * Packet Typecasting? * Various Error Reporting? The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the [[Category_The_EVEmu_Guide.html|The EVEmu Guide]] main article, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. Before that can be done, the information that the client has sent has to be decoded, as the client sends the service data in the form of objects. The server is coded in C++, which is an Object Oriented language and you *MUST* think in that manner in able to code efficiently. Essentially the objects are structures that contain all the data necessary, and follow a pre-determined organizational hierarchy. As we understand this hierarchy, we are able to successfully decode the information packets that the client sends us, and do what we're supposed to with them. In this regard, EVEmu's implementation of EVE Online's received and transmitted packets is static, in that all packets' structures are pre-determined and stored in XMLP files using XML formatting. See the [[XML_Packet_Generator.html|XML Packet Generator]] article for more information on specific packets and how the xmlp files are formatted. The eve-common project handles all of those decoding functions, along with many others. Every time you see something like '''args.Decode()''', what is really happening is that a variable named args is being declared as some class from the eve-common project. For instance, CallJoinArgs? is a class that is contained in eve-common. It handles the decoding and encoding of all packets necessary to join a channel in the chat. Basically it knows how the data for that call is formatted, and pulls out specific things, and sets variables from that information so that we can work with it. As you can imagine, being able to decode all of the data structures of any call that the client can make to the server requires a LOT of code, which is why we have the [[XML_Packet_Generator.html|XML Packet Generator]] project. </div> a55291460db28450206aaea40c20e75aac6a2739 Old Wiki:EVE File Formats 0 66 91 2021-04-03T14:20:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVE_File_Formats|<span class="tocnumber">1</span> <span class="toctext">EVE File Formats</span>]] ** [[#.STUFF_Files|<span class="tocnumber">1.1</span> <span class="toctext">.STUFF Files</span>]] ** [[#.TRI_Files|<span class="tocnumber">1.2</span> <span class="toctext">.TRI Files</span>]] ** [[#.BLUE_Files|<span class="tocnumber">1.3</span> <span class="toctext">.BLUE Files</span>]] ** [[#.CCP_Files|<span class="tocnumber">1.4</span> <span class="toctext">.CCP Files</span>]] ** [[#.CODE_File|<span class="tocnumber">1.5</span> <span class="toctext">.CODE File</span>]] ** [[#.PYJ_Files|<span class="tocnumber">1.6</span> <span class="toctext">.PYJ Files</span>]] |} = <span id="EVE_File_Formats" class="mw-headline"> EVE File Formats </span> = == <span id=".STUFF_Files" class="mw-headline"> .STUFF Files </span> == The .stuff files in the EVE directory are basically a little uncompressed virtual filesystem. Almost every file located in the .stuff files is either a .blue file, a .wav file, a .ogg file, or a .tri file. This file format is rather trivial. All integers are little endian. It starts with a four byte file count. Is then followed by a header for each file containing four bytes of file length, then four bytes of file path length, and then the file path string which is the specified number of bytes long. After you are past all of the headers, the data starts. The first block of data corresponds to the first file header, and is the number of bytes specified in the header long. Tools to extract stuff files: -- [http://go-dl.eve-files.com/media/corp/Xabora/TriExporter_2009.zip TriExporter] - 417KiB -- [http://go-dl.eve-files.com/media/corp/NICRA/EVE_Stuff_Extractor.zip EVE Stuff Extractor] - 138KiB == <span id=".TRI_Files" class="mw-headline"> .TRI Files </span> == These files are located in the .stuff files as documented above. The .tri files are basically 3d models, other people have figured out what the .tri files are, so somebody should update this with more info from them. There are tools out there to work with these files. == <span id=".BLUE_Files" class="mw-headline"> .BLUE Files </span> == These files represent different types of resources, models, scenes, sounds, materials, effects etc... they are paired with values and a &quot;listdata&quot; of the values names, combining .tri, .ogg, .fxo and caracteristics of the resource type, an interresting value to obtain from this files is the BoundingSphereRadius? from models blues, to optimize updates of the space. == <span id=".CCP_Files" class="mw-headline"> .CCP Files </span> == These are standard zip files. They contain all of the python files found in \lib in versions prior to the Dragon client. All of these files are now in .pyj format. == <span id=".CODE_File" class="mw-headline"> .CODE File </span> == The compiled.code file is in the Python Pickling format Protocol version 2. All of the specifics are available in the Python documentation, as well as in the source files for the pickling module (specifically pickle.py and pickletools.py), which are included in all Python installs. The compiled.code file appears to encode a python dictionary that maps filename keys with file data values. These files are both compiled python code, as well as some image and stylesheet files for the in-game web browser. In versions beyond the Blood client, these files are in .pyj format. == <span id=".PYJ_Files" class="mw-headline"> .PYJ Files </span> == These are simply .pyo files that have been &quot;Jumbled&quot; with CCP's custom version of memfrob() that XOR's all bytes by 42. The contents of these .pyo files has been recovered, but because they are compiled the original source code can not be determined. They can be decompyled to reveal some of the details about their operation. </div> d491f59edc0b44c524d1a236ad2e658578331765 Old Wiki:EVEmu Account Roles 0 67 92 2021-04-03T14:21:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="EVE_Account_Roles" class="mw-headline"> EVE Account Roles </span> = For a list of GM commands [[List_of_Admin_and_GM_Commands.html|go here]]. == <span id="Incursion_and_Later_Clients" class="mw-headline"> Incursion and Later Clients </span> == CCP changed the account role field to 64-bits and now use this info: {| ! n ! Role name ! Decimal ! hex ! Description |- | 0 | ROLE_UNK | 1 | 0000 0000 0000 0001 | Not used |- | 1 | ROLE_UNK | 2 | 0000 0000 0000 0002 | Not used |- | 2 | ROLE_UNK | 4 | 0000 0000 0000 0004 | Not used |- | 3 | ROLE_UNK | 8 | 0000 0000 0000 0008 | Not used |- | 4 | ROLE_UNK | 16 | 0000 0000 0000 0010 | Not used |- | 5 | ROLE_UNK | 32 | 0000 0000 0000 0020 | Not used |- | 6 | ROLE_UNK | 64 | 0000 0000 0000 0040 | Not used |- | 7 | ROLE_UNK | 128 | 0000 0000 0000 0080 | Not used |- | 8 | ROLE_PETITIONEE | 256 | 0000 0000 0000 0100 | |- | 9 | ROLE_CENTURION | 2048 | 0000 0000 0000 0800 | |- | 10 | ROLE_WORLDMOD | 4096 | 0000 0000 0000 1000 | |- | 11 | ROLE_UNK | 8192 | 0000 0000 0000 2000 | Not used |- | 12 | ROLE_DBA | 16384 | 0000 0000 0000 4000 | |- | 13 | ROLE_UNK | 32768 | 0000 0000 0000 8000 | Not used |- | 14 | ROLE_UNK | 65536 | 0000 0000 0001 0000 | Not used |- | 15 | ROLE_REMOTESERVICE | 131072 | 0000 0000 0002 0000 | |- | 16 | ROLE_LEGIONEER | 262144 | 0000 0000 0004 0000 | |- | 17 | ROLE_TRANSLATION | 524288 | 0000 0000 0008 0000 | |- | 18 | ROLE_CHTINVISIBLE | 1048576 | 0000 0000 0010 0000 | Flag the connection as a remote service |- | 19 | ROLE_CHTADMINISTRATOR | 2097152 | 0000 0000 0020 0000 | |- | 20 | ROLE_HEALSELF | 4194304 | 0000 0000 0040 0000 | Allow and add the gui options to heal self |- | 21 | ROLE_HEALOTHERS | 8388608 | 0000 0000 0080 0000 | Allow and add the gui optns to heal others |- | 22 | ROLE_NEWSREPORTER | 16777216 | 0000 0000 0100 0000 | |- | 23 | ROLE_UNK | 33554432 | 0000 0000 0200 0000 | Not used |- | 24 | ROLE_UNK | 67108864 | 0000 0000 0400 0000 | Not used |- | 25 | ROLE_TRANSLATIONADMIN | 134217728 | 0000 0000 0800 0000 | |- | 26 | ROLE_UNK | 268435456 | 0000 0000 1000 0000 | Not used |- | 27 | ROLE_ACCOUNTMANAGEMENT | 536870912 | 0000 0000 2000 0000 | |- | 28 | ROLE_UNK | 1073741824 | 0000 0000 4000 0000 | Not used |- | 29 | ROLE_IGB | 2147483648 | 0000 0000 8000 0000 | |- | 20 | ROLE_TRANSLATIONEDITOR | 4294967296 | 0000 0001 0000 0000 | |- | 31 | ROLE_SPAWN | 8589934592 | 0000 0002 0000 0000 | |- | 32 | ROLE_TRANSLATIONTESTER | 34359738368 | 0000 0008 0000 0000 | |- | 33 | ROLE_WIKIEDITOR | 68719476736 | 0000 0010 0000 0000 | |- | 34 | ROLE_TRANSFER | 137438953472 | 0000 0020 0000 0000 | |- | 35 | ROLE_GMS | 274877906944 | 0000 0040 0000 0000 | |- | 36 | ROLE_CL | 549755813888 | 0000 0080 0000 0000 | |- | 37 | ROLE_CR | 1099511627776 | 0000 0100 0000 0000 | |- | 38 | ROLE_CM | 2199023255552 | 0000 0200 0000 0000 | |- | 39 | ROLE_MARKET | 4398046511104 | 0000 0400 0000 0000 | |- | 40 | ROLE_MARKETH | 8796093022208 | 0000 0800 0000 0000 | |- | 41 | ROLE_UNK | 17592186044416 | 0000 1000 0000 0000 | Not used |- | 42 | ROLE_BSDADMIN | 35184372088832 | 0000 2000 0000 0000 | |- | 43 | ROLE_CSMADMIN | 70368744177664 | 0000 4000 0000 0000 | |- | 44 | ROLE_CSMDELEGATE | 140737488355328 | 0000 8000 0000 0000 | |- | 45 | ROLE_EXPOPLAYER | 281474976710656 | 0001 0000 0000 0000 | |- | 46 | ROLE_BANNING | 562949953421312 | 0002 0000 0000 0000 | |- | 47 | ROLE_DUST | 1125899906842624 | 0004 0000 0000 0000 | Flag the connection / player as a Dust player / client |- | 48 | ROLE_PROGRAMMER | 2251799813685248 | 0008 0000 0000 0000 | |- | 49 | ROLE_QA | 4503599627370496 | 0010 0000 0000 0000 | |- | 50 | ROLE_GMH | 9007199254740992 | 0020 0000 0000 0000 | |- | 51 | ROLE_GML | 18014398509481984 | 0040 0000 0000 0000 | |- | 52 | ROLE_CONTENT | 36028797018963968 | 0080 0000 0000 0000 | |- | 53 | ROLE_ADMIN | 72057594037927936 | 0100 0000 0000 0000 | |- | 54 | ROLE_VIPLOGIN | 144115188075855872 | 0200 0000 0000 0000 | Flag the connection / player as VIP, this initialy would suggest those people can still login when the server is full |- | 55 | ROLE_ROLEADMIN | 288230376151711744 | 0400 0000 0000 0000 | |- | 56 | ROLE_NEWBIE | 576460752303423488 | 0800 0000 0000 0000 | Flag the connection / player as newbie so it can get the extra help chat channels by default |- | 57 | ROLE_SERVICE | 1152921504606846976 | 1000 0000 0000 0000 | Flag the connection as service |- | 58 | ROLE_PLAYER | 2305843009213693952 | 2000 0000 0000 0000 | Flag the connection as player |- | 59 | ROLE_LOGIN | 4611686018427387904 | 4000 0000 0000 0000 | Adds the ability to login, this is required for players |} <br /> <pre>ROLE_ANY = (18446744073709551615L &amp; ~ROLE_IGB) ROLEMASK_ELEVATEDPLAYER = (ROLE_ANY &amp; ~(((ROLE_LOGIN | ROLE_PLAYER) | ROLE_NEWBIE) | ROLE_VIPLOGIN)) ROLEMASK_VIEW = ((((ROLE_ADMIN | ROLE_CONTENT) | ROLE_GML) | ROLE_GMH) | ROLE_QA)</pre> ''NOTE:''' We've done some experimentation to determine the right role value to allow access to slash commands, GIVE skills for items and ships, as well as full access to the Insider tool bar. This role is calculated using this equation from the role constants above: <pre>ROLEMASK_GRAVY = ROLE_LOGIN | ROLE_ROLEADMIN | ROLE_ADMIN | ROLE_GML | ROLE_GMH | ROLE_QA</pre> <pre>ROLEMASK_GRAVY = 5003499186008621056</pre> <pre>ROLE_ANY = (18446744073709551615L &amp; ~ROLE_IGB)</pre> <pre>ROLEMASK_ELEVATEDPLAYER = (ROLE_ANY &amp; ~(((ROLE_LOGIN | ROLE_PLAYER) | ROLE_NEWBIE) | ROLE_VIPLOGIN))</pre> <br /> <pre>ROLEMASK_VIEW = ((((ROLE_ADMIN | ROLE_CONTENT) | ROLE_GML) | ROLE_GMH) | ROLE_QA)</pre> service.ROLEMASK_ELEVATEDPLAYER = (service.ROLEMASK_ELEVATEDPLAYER &amp; ~ROLE_NEWSREPORTER) == <span id="Apocrypha_and_Earlier_Clients" class="mw-headline"> Apocrypha and Earlier Clients </span> == {| ! n ! Role name ! Decimal ! hex ! Description |- | 0 | Login | 1 | 0000 0000 0000 0001 | Adds the ability to login, this is required for players |- | 1 | Player | 2 | 0000 0000 0000 0002 | Flag the connection as player |- | 2 | GDNPC | 4 | 0000 0000 0000 0004 | |- | 3 | GML | 8 | 0000 0000 0000 0008 | |- | 4 | GMH | 16 | 0000 0000 0000 0010 | |- | 5 | Admin | 32 | 0000 0000 0000 0020 | Flag the player as a ADMIN |- | 6 | Service | 64 | 0000 0000 0000 0040 | Flag the connection as service |- | 7 | HTTP | 128 | 0000 0000 0000 0080 | |- | 8 | Petitionee | 256 | 0000 0000 0000 0100 | |- | 9 | GDL | 512 | 0000 0000 0000 0200 | |- | 10 | GDH | 1024 | 0000 0000 0000 0400 | |- | 11 | Centurion | 2048 | 0000 0000 0000 0800 | |- | 12 | WorldMod | 4096 | 0000 0000 0000 1000 | |- | 13 | QA | 8192 | 0000 0000 0000 2000 | |- | 14 | DBA | 16384 | 0000 0000 0000 4000 | |- | 15 | RoleAdmin | 32768 | 0000 0000 0000 8000 | This ADMIN can change people's ROLE |- | 16 | Programmer | 65536 | 0000 0000 0001 0000 | This GM is a programmer and is allowed to use programmer tools |- | 17 | RemoteService | 131072 | 0000 0000 0002 0000 | Flag the connection as a remote service |- | 18 | Legioneer | 262144 | 0000 0000 0004 0000 | |- | 19 | Translation | 524288 | 0000 0000 0008 0000 | |- | 20 | ChatInvisible | 1048576 | 0000 0000 0010 0000 | |- | 21 | ChatAdministrator | 2097152 | 0000 0000 0020 0000 | This ADMIN is a chat administrator |- | 22 | HealSelf | 4194304 | 0000 0000 0040 0000 | This GM can heal himself |- | 23 | HealOthers | 8388608 | 0000 0000 0080 0000 | This GM can heal others |- | 24 | NewsReporter | 16777216 | 0000 0000 0100 0000 | |- | 25 | Hosting | 33554432 | 0000 0000 0200 0000 | |- | 26 | Broadcast | 67108864 | 0000 0000 0400 0000 | |- | 27 | TranslationAdmin | 134217728 | 0000 0000 0800 0000 | This ADMIN can change translations |- | 28 | Noobie | 268435456 | 0000 0000 1000 0000 | Flag the connection / player as newbie so it can get the extra help chat channels by default |- | 29 | AccountManagement | 536870912 | 0000 0000 2000 0000 | This GM can manage mission instances called dungeons |- | 30 | DungeonMaster | 1073741824 | 0000 0000 4000 0000 | |- | 31 | IGB | 2147483648 | 0000 0000 8000 0000 | |- | 32 | TranslationEditor | 4294967296 | 0000 0001 0000 0000 | isn't this one more than 32 bits? whats happening here.... |- | 33 | Spawn | 8589934592 | 0000 0002 0000 0000 | |- | 34 | VIPLogin | 17179869184 | 0000 0004 0000 0000 | |- | 35 | TranslationTester | 34359738368 | 0000 0008 0000 0000 | |- | 36 | WikiEditor | 68719476736 | 0000 0010 0000 0000 | |- | 37 | Transfer | 137438953472 | 0000 0020 0000 0000 | |- | 38 | GMS | 274877906944 | 0000 0040 0000 0000 | |- | 39 | EveOnline | 549755813888 | 0000 0080 0000 0000 | |- | 40 | CR | 1099511627776 | 0000 0100 0000 0000 | |- | 41 | CM | 2199023255552 | 0000 0200 0000 0000 | |- | 42 | Market | 4398046511104 | 0000 0400 0000 0000 | |- | 43 | MarketH | 8796093022208 | 0000 0800 0000 0000 | |- | 44 | BusinessPartner | 17592186044416 | 0000 1000 0000 0000 | |- | 45 | BSDAdmin | 35184372088832 | 0000 2000 0000 0000 | |- | 46 | CSMAdmin | 70368744177664 | 0000 4000 0000 0000 | |- | 47 | CSMDelegate | 140737488355328 | 0000 8000 0000 0000 | |- | 48 | ExpoPlayer | 281474976710656 | 0001 0000 0000 0000 | |- | 49 | Banning | 562949953421312 | 0002 0000 0000 0000 | |} </div> 273835d28973202343e46fb89f28d9d2e662b5f8 Old Wiki:EVEmu Architecture 0 68 93 2021-04-03T14:21:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVE_Emulator_Software_Architecture|<span class="tocnumber">1</span> <span class="toctext">'''EVE Emulator Software Architecture'''</span>]] * [[#Layers|<span class="tocnumber">2</span> <span class="toctext">'''Layers'''</span>]] * [[#Bound_Objects|<span class="tocnumber">3</span> <span class="toctext">'''Bound Objects'''</span>]] * [[#Packet_Generation|<span class="tocnumber">4</span> <span class="toctext">'''Packet Generation'''</span>]] |} == <span id="EVE_Emulator_Software_Architecture" class="mw-headline"> '''EVE Emulator Software Architecture''' </span> == The software architecture is mostly based on the current understanding of the real EVE architecture, except it is a single node. this needs a lot more expansion, im just quickly capturing key concepts right now.. <br /> == <span id="Layers" class="mw-headline"> '''Layers''' </span> == the network code for EVEmu is organized into four basic layers right now: 1.Application Layer - This is where the application logic resides... right now the only application logic which we have is that which is required to excercise the protocol. there is no intent at this point in development to expand the application layer to a playable point (until the network protocols are better understood). 2.Service Layer - The service layer is really responsible for taking packets from the network and dispatching them to the correct service object (and possible bound sub-object), so that it can service the request. 3.Presentation Layer - The presentation layer is reposible for interpreting or generating the raw bytes transported by the network into concepts that the service and application layer can understand. Because the live EVE is based on python, the packets sent over the wire are a serialization of python objects (similar to pickling). The sort of python primitives which the presentation layer deals in are things like lists, tuples, dicts, ints, strings, etc... This layer also takes care of compression using zlib. 4.Network Layer - The network layer of EVE is realatively simple, and is responsible for getting packets of serialized data across the network in one piece.. they use TCP, so this layer only has to deal with dividing the link up by packet length. Code Organization The code in the server is very service-centric right now... packet come in and get dispatched to the correct service for the request. The service then takes appropriate action on the packet and returns the result. There is a Client object which represents the current state of the client, but for the most part, as much as possible of the logic should be implemented in the service objects. <br /> == <span id="Bound_Objects" class="mw-headline"> '''Bound Objects''' </span> == One important concept to learn about is &quot;bound objects&quot;... this is essentially a way for the client to request an &quot;instance&quot; of a service which retains some context about what it is... think of it as creating a new remote object on the server, on which the client can make direct calls, instead of calling into the service itself each time. The bound object's &quot;constructor&quot; takes some arguments that tell it, for example, what ship it represents. From then on, its implied by making a call on the bound object that the client is talking about that specific ship, etc... Calls on bound objects are also more optimal on the network, because they specify exactly where they are going (node and a routing number), instead of specifying the service name and other routing parameters... <br /> == <span id="Packet_Generation" class="mw-headline"> '''Packet Generation''' </span> == Because EVEmu is being written in native C++, and the data on the wire is more python-friendly, I developed an XML based system for laying out the contents of a message in a more C++ friendly structure. The various files in packets/*.xml represent service and application layer messages </div> df36a9b9849823055f451e43fa1b58afc0780810 Old Wiki:EVEmu - Client connection brief 0 69 94 2021-04-03T14:21:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> * TCP Server is started (evemu_server.cpp - 374) * TCP Connection is poped from connections list (evemu_server.cpp - 381) * Client is created (evemu_server.cpp - 383) ** In client's constructor the EVESession object is created (Client.cpp - 43) ** EVESession::Reset() is called to start the handshake (Client.cpp - 69) *** Handshake occurs (if you want details visit EVESession.cpp) *** After a successful handshake mPacketHandler defaults to _HandlePacket (EVESession.cpp - 215) * Client is added to sEntityList (evemu_server.cpp - 385) * sEntityList.Process() gets called (evemu_server.cpp - 388) ** active_client.ProcessNet() (Client::ProcessNet()) gets called (EntityList.cpp - 74) ** Client starts to pop packets from the queue in ProcessNet() (Client.cpp - 120) ** EVEPktDispatch::DispatchPacket gets called with the contents of the poped packet (Client.cpp - 129) ** Packet gets it's type checked and gets transferred to it's corresponding Handle_* function === <span id="We_continue_with_an_example_of_a_Call_Req_packet_type" class="mw-headline"> We continue with an example of a Call_Req packet type </span> === * Client::Handle_CallReq is called (EVEPktDispatch.cpp - 93)(virtual calls - hard to follow - YUCK!!!) ** Destination service is checked if it exists in the packet (Client.cpp - 1716) ** We get hold of the destination service reference (Client.cpp - 1742) ** Arguments are constructed from packet (Client.cpp - 1761) ** Packet gets handled by it's appropriate service and the results are grabbed (Client.cpp - 1764) ** We send a session change notification (Client.cpp - 1766) ** We send call response back to the client with (Client.cpp - 1767) </div> 81e75b625111d4e178793287eb6fc29933c5d610 Old Wiki:EVEmu Connect 0 70 95 2021-04-03T14:21:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Forums|<span class="tocnumber">1</span> <span class="toctext">Forums</span>]] * [[#Teamspeak|<span class="tocnumber">2</span> <span class="toctext">Teamspeak</span>]] * [[#IRC_EVEmu|<span class="tocnumber">3</span> <span class="toctext">IRC EVEmu</span>]] ** [[#Finding_an_IRC_Client|<span class="tocnumber">3.1</span> <span class="toctext">Finding an IRC Client</span>]] ** [[#Downloading_and_installing|<span class="tocnumber">3.2</span> <span class="toctext">Downloading and installing</span>]] *** [[#Additional_info|<span class="tocnumber">3.2.1</span> <span class="toctext">Additional info</span>]] ** [[#Connecting_to_the_server|<span class="tocnumber">3.3</span> <span class="toctext">Connecting to the server</span>]] *** [[#Initial_Setting_Up|<span class="tocnumber">3.3.1</span> <span class="toctext">Initial Setting Up</span>]] *** [[#Common_Connect_routine|<span class="tocnumber">3.3.2</span> <span class="toctext">Common Connect routine</span>]] ** [[#Joining_the_channel|<span class="tocnumber">3.4</span> <span class="toctext">Joining the channel</span>]] ** [[#Closing_Notes|<span class="tocnumber">3.5</span> <span class="toctext">Closing Notes</span>]] |} = <span id="Forums" class="mw-headline"> Forums </span> = [http://forums.evemu.org/ EVEmu Forums] = <span id="Teamspeak" class="mw-headline"> Teamspeak </span> = Code_Red has been kind enough to keep a multi-channel Teamspeak server running for our use whenever we want to talk to each other during development, testing, or just shooting the breeze. Here are the connection details: * [http://www.teamspeak.com/ Teamspeak 3.x] * server address: '''evemu-serv.servehttp.com''' * port: '''9989''' <br /> * PS - please do not bug the other inhabitants on the other ports, thanks in advance. - Code_Red = <span id="IRC_EVEmu" class="mw-headline"> IRC EVEmu </span> = == <span id="Finding_an_IRC_Client" class="mw-headline"> Finding an IRC Client </span> == You can select a client of preference from this list [http://en.wikipedia.org/wiki/Comparison_of_IRC_clients IRC Client Comparison]. Also you can use web based IRC clients like [http://chat.mibbit.com/ mibbit] For this tutorial we are gonna be using [http://www.smuxi.org/ Smuxi] for its cross platform availability. Here are some IRC client favorites of some of our more active people: * [http://www.icechat.net/site/ IceChat] - Aknor (he likes v7 over v9 though ;) * [http://wiki.znc.in/ZNC ZNC] - ozatomic * [http://www.kvirc.net/ KVirc] - various * [http://xchat.org/ xchat] - various * [http://www.mirc.com/ mIRC] - various folks like this, but it's not free :( == <span id="Downloading_and_installing" class="mw-headline"> Downloading and installing </span> == The downloading and installation process are explained in detailed in [http://www.smuxi.org/page/Download Smuxis download page]. === <span id="Additional_info" class="mw-headline"> Additional info </span> === If whatever client prompts you for installing additional software its advised to only keep the vital parts of the client, as it might install unwanted advertising software. == <span id="Connecting_to_the_server" class="mw-headline"> Connecting to the server </span> == === <span id="Initial_Setting_Up" class="mw-headline"> Initial Setting Up </span> === You are only required to follow the following steps on first run. At the first execution of the client, you should click on File-&gt;Preferences at the top left corner of the window. From there you should only add your nickname on the nickname(s) field. After you are done setting a nickname, click on servers. Click Add. In the new window the only thing you should change is the Hostname field. Insert one from the list below: <br /> * gork.levelbelow.net (Master - Works) * bork.levelbelow.net (Works) * aussie.levelbelow.net (Works) * irc.evemu.net (Will point to all 3 servers) * irc.evemu.com (Will point to all 3 servers) <br /> Former servers (now defunct) * irc.evemu.org * irc.evemu.info * evemu.levelbelow.net <br /> Select OK twice. === <span id="Common_Connect_routine" class="mw-headline"> Common Connect routine </span> === The following steps are gonna be done each time you wish to connect. Click Server-&gt;Quick Connect. On the left, click the network address you entered and select Connect. You are now connected to the server == <span id="Joining_the_channel" class="mw-headline"> Joining the channel </span> == If you have successfully joined the server, you should head for the editbox and type, depending on your goal one of the following: '''/join #evemu''' (Preferred most people are on here. If you have a question say hi '''and''' ask, some people will help you as soon as they see the message.) '''/join #evemu-support''' == <span id="Closing_Notes" class="mw-headline"> Closing Notes </span> == If you successfully have a new tab named evemu, congratulations, you have just connected to the community IRC channel where you can talk live with everyone. If however you failed at some point you should head to the [wiki:FAQ] and look for a possible solution or you can always Google It </div> 87d2d420b3980a39090e9a2d140b20698809a71e Old Wiki:EVEmu Control Panel 0 71 96 2021-04-03T14:21:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVEmu_Database_Tools|<span class="tocnumber">1</span> <span class="toctext">EVEmu Database Tools</span>]] ** [[#EVEmu_Control_Panel|<span class="tocnumber">1.1</span> <span class="toctext">EVEmu Control Panel</span>]] *** [[#SQL_Settings_-_The_Connection_to_Your_Database|<span class="tocnumber">1.1.1</span> <span class="toctext">SQL Settings - The Connection to Your Database</span>]] *** [[#Account_and_Character_Editor|<span class="tocnumber">1.1.2</span> <span class="toctext">Account and Character Editor</span>]] *** [[#Item_and_Ship_Editor|<span class="tocnumber">1.1.3</span> <span class="toctext">Item and Ship Editor</span>]] *** [[#Insurance_Editor|<span class="tocnumber">1.1.4</span> <span class="toctext">Insurance Editor</span>]] *** [[#Race_and_Bloodline_Editor|<span class="tocnumber">1.1.5</span> <span class="toctext">Race and Bloodline Editor</span>]] *** [[#Seed_Market|<span class="tocnumber">1.1.6</span> <span class="toctext">Seed Market</span>]] *** [[#Seed_Asteroid_Belts|<span class="tocnumber">1.1.7</span> <span class="toctext">Seed Asteroid Belts</span>]] *** [[#Ore_Editor|<span class="tocnumber">1.1.8</span> <span class="toctext">Ore Editor</span>]] *** [[#Market_Groups|<span class="tocnumber">1.1.9</span> <span class="toctext">Market Groups</span>]] |} = <span id="EVEmu_Database_Tools" class="mw-headline"> EVEmu Database Tools </span> = Since EVEmu is a custom server that interacts with a vast MySQL database, we need tools to work with that database whether the server is running or not. So far, we've got one Database tool and that's '''DB Editor'''. == <span id="EVEmu_Control_Panel" class="mw-headline"> EVEmu Control Panel </span> == EVEmu Control Panel is a rather simple tool created using Visual C# and can be built and debugged using the FREE Microsoft Visual Studio 2010 Express which you can [http://www.microsoft.com/express/downloads/ download here], just install Visual C# 2010 Express. Created by '''Hurracane''', this tool connects the the EVEmu SQL database and provides several ways to interact with and change data stored within the database. These major feature categories are discussed in detail below. [https://www.github.com/evemuproject/evemu_control_panel Get EVEmu Control Panel Source from Github] === <span id="SQL_Settings_-_The_Connection_to_Your_Database" class="mw-headline"> SQL Settings - The Connection to Your Database </span> === ''Development Status:'' '''FULLY OPERATIONAL''' '''Before you do anything with EVEmu Control Panel, you must connect it to your EVEmu database.''' This is done using the '''SQL Settings''' tab, which is the default view when the program is executed. Supply the Host (domain name or IP address), the '''username''' and '''password''' for mysql to allow access to your EVEmu database, the port number used by mysql, and the exact name of the EVEmu database. Once this information is entered, click the Connect button. EVEmu Control Panel will then try to connect and if successful, the Connect button will be depressed and disabled. Across the menu bar past the Help menu, you will also see some greyed text declaring &quot;Connected To DB&quot;. You may now proceed to make use of the other tabs to interact and change data in your EVEmu database's tables. === <span id="Account_and_Character_Editor" class="mw-headline"> Account and Character Editor </span> === ''Development Status:'' '''OPERATIONAL, BUT NOT COMPLETE''' '''TO BE IMPLEMENTED:''' <pre>* Edit a character's station, solar system, region, constellation, and current ship location info * Edit ban/kick info on any character and/or account * Export an account or a character or an account and one or more of its characters into an XML file * Info saved: all character info, clone grade, skills, certifications, attributes, augmentations, bio, wallet balance * NO items owned are saved * NO ID values from database are saved, these are auto-regenerated and auto-assigned upon import to another database * Import an account or a character or an account and one or more of its characters from an XML file</pre> This tab is the quickest way to add an account to your EVEmu server and edit existing accounts. Accounts are added by supplying a username, a password, and a user role. This tab also allow the editing of any characters in your EVEmu server. === <span id="Item_and_Ship_Editor" class="mw-headline"> Item and Ship Editor </span> === ''Development Status:'' '''OPERATIONAL, HOWEVER, IT MIGHT LACK SOME USEFUL FEATURES - LET US KNOW YOUR IDEAS!''' Upon first connecting to your database and entering the '''Item/Ship Editor''' tab, you'll see lots of blank fields. Start with the '''Category''' drop-down control. Select an Item Category, such as Ships or Modules, there are quite a few. Now you'll see two new controls and buttons above the list of items now populated in the window below and a new button labeled '''Edit Item'''. The '''Search on typeName''' control and button will let you type some text to search by '''typeName''' field in the list below to either get the one item you're interested or filter down the view. You also filter down results by entering partial typeID or you can get directly to an item by just entering the full typeID number into the '''Search on typeID''' control. Either text box will search on hitting ENTER or clicking the button to its right. This whole tab works like an interactive GUI for the following tables: '''invCategories''', '''invGroups''', '''invTypes''', '''dgmTypeAttributes''', and '''dgmTypeEffects'''. It allows you to view attributes and effects and general information on any item in the game universe by first selecting its category then either searching on a typeID or an item's name to get to it. Once you've identified an item you want to view or edit, either double-click its line in the results window or you can select it and click the '''Edit Item''' button below the results window. Once inside the Edit/view window for a single item, there are three tabs: '''Item Info''', '''Item Attributes''', and '''Item Effects'''. General info is in the first tab, attributes associated with this item are in the second tab, and effects associated with this item, if any, are found in the third tab. Only a very experienced developer or someone who understands the deeper inner workings of the EVE game should ever be editing this information, but feel free to browse it and learn what it means. More information on Attributes and Effects can be found on the [[Category_Game_Operation.html|Game Operation]] page along with other aspects of how the game works. === <span id="Insurance_Editor" class="mw-headline"> Insurance Editor </span> === ''Development Status:'' '''NON-OPERATIONAL''' This tab allows some kind of editing of Insurance information, but it has niot been implemented yet. === <span id="Race_and_Bloodline_Editor" class="mw-headline"> Race and Bloodline Editor </span> === ''Development Status:'' '''OPERATIONAL''' <br /> === <span id="Seed_Market" class="mw-headline"> Seed Market </span> === ''Development Status:'' '''FULLY OPERATIONAL''' '''TO BE IMPLEMENTED:''' <pre>* Change system and region selection behavior such that the list of individually selected systems is appended with the list of all systems that are gathered from the list of selected regions.</pre> This tab simply allows one to seed the '''market_orders''' table with sell orders for whatever items, modules, ships, skills, etc that one wants to make available to players in the game. That is where the simplicity ends as this one tab has the ability to create such far-reaching queries that it has been known to seemingly crash mysql or at least make it run so long that people kill the mysql daemon and thus kill their whole evemu database causing them to re-create it from scratch. (Trust me, I've done it.) '''WARNING: Before you make large queries using this tool, it is STRONGLY recommended that you do a mysql dump of your entire table or back it up some other way. THEN, if you need to seed large swaths of the market such as an entire region (or more) full of every item, you should un-check 'Apply query to database?' checkbox and copy the queries into a text file which you would then run using the mysql command line interface.''' To seed the market, follow these steps, which have choices to be made by you based on what kinds of items you want to seed and where you want to seed them. Selections start at the far left of the window and progress toward the right side of the window. Keep that in mind when following these instructions. <pre>1. Select zero or more races in the Races selection box on the far left. Zero selected races is used to seed items, skills, ships, etc. that have NO race, i.e. their raceID is set to NULL in the invtypes table. Select one or more races to seed items, skills, ships, etc. from those selected race(s). 2. You may select one or more individual solar systems with the System selection box AND / OR you may select one or more individual regions with the Region selection box. Do note that if you select one or more individual systems AND one or more regions the list of systems in the selected regions will replace the list of individually selected systems. 3. With solar systems and/or regions selected, now you can select item categories with the Category selection box. You may select one or more simultaneously. 4. For each category selected, all items in that category will be listed in the Group selection box on the far right. You may select one or more or all of the entries in this selection box. 5. There is a pair of radio buttons you may use to select whether the market is seeded wsith BUY or SELL orders. 5. Now, you may wish to simply commit the INSERT query directly to the EVEmu database, however, there are some other options to consider. If you do not want to commit the INSERT query to your database at this time, the Query window below is there for you to copy the query for later use. In this case, simply un-check the check box then click the Seed Market button. If you do with the query to be committed to the database, leave this box checked, then click the Seed Market button. 6. Additionally, you can clear the query window by clicking the Clear Query button. 7. Because market seeding quries can become quite large very quickly, there are some query 'thinning' options you may want to consider. a. Use the 0% to 100% slider control to tell EVEmu Control Panel to thin out the final system list to some percentage of the selected systems that the makret query will affect. b. Use the security level controls to seed the selected market items into those systems with security level at and above or at and below the security level you supply in the text box. The systems seeded with market items will be a subset of the individual systems you selected or those in the regions you selected. This works separately and in conjunction with the percentage slider control.</pre> === <span id="Seed_Asteroid_Belts" class="mw-headline"> Seed Asteroid Belts </span> === ''Development Status:'' '''FUNCTIONAL''' There is an issue that has come with further testing of this feature and that is all asteroids spawned using the control panel have an ore total of 1. Using GM commands in-game to spawn asteroids will spawn with a 'reasonable' quantity of ore. So this feature is effectively broken. '''TO BE IMPLEMENTED''' <pre>* Provide controls and lists to first select systems (with a percentage slider to thin out the system list) and belts in which to seed asteroids and then checkboxes to selectg which ores to seed, sliders for each ore to select relative concentrations and finally a list control that allows the choice of what kind of physical arrangement of the asteroids in space you want with a size control to determine the overall dimensions of the arrangement. * Ideas for physical arrangements: crescent, line, cross, sphere, random x/y/z, any others?</pre> === <span id="Ore_Editor" class="mw-headline"> Ore Editor </span> === === <span id="Market_Groups" class="mw-headline"> Market Groups </span> === </div> d8439aba712f3ad291867020c1e9b4a7915aad85 Old Wiki:EVEmu Developers Hub 0 72 97 2021-04-03T14:21:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / '''EVEmu Development''' (you are here) |} <br /> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVEmu_Development|<span class="tocnumber">1</span> <span class="toctext">EVEmu Development</span>]] ** [[#Getting_Started|<span class="tocnumber">1.1</span> <span class="toctext">Getting Started</span>]] ** [[#Tools|<span class="tocnumber">1.2</span> <span class="toctext">Tools</span>]] ** [[#Resources|<span class="tocnumber">1.3</span> <span class="toctext">Resources</span>]] ** [[#Community|<span class="tocnumber">1.4</span> <span class="toctext">Community</span>]] * [[#Documentation|<span class="tocnumber">2</span> <span class="toctext">Documentation</span>]] * [[#Projects|<span class="tocnumber">3</span> <span class="toctext">Projects</span>]] |} = <span id="EVEmu_Development" class="mw-headline"> EVEmu Development </span> = So, you want to develop for the EVEmu project, eh? Well great! We NEED as many experienced C++ coders as we can get. This page is your starting point for learning the code base, connecting with the community of developers, getting access to tools and resources you'll need to help develop for the EVEmu project. People new to developing with EVEmu should start with the [[#Getting_Started|Getting Started]] section. == <span id="Getting_Started" class="mw-headline"> Getting Started </span> == * [[Getting_Started.html|Getting Started]] * [[Development_Team.html|Development Team]] * [[Development_Practices.html|Development Practices]] * [[Source_Code.html|Source Code]] == <span id="Tools" class="mw-headline"> Tools </span> == '''[[Category_EVEmu_Tools.html|EVEmu Tools]]''' - main article on tools managed by and used by the EVEmu Developer team '''Popular tools used by EVEmu Developers:''' * [http://www.github.com/stschake/believe BeliEVE] - your tool to capture packets from EVEmu server as well as EVE live! * [[EVEmu_Control_Panel.html|EVEmu Control Panel]] - your friendly database viewer/changer tool == <span id="Resources" class="mw-headline"> Resources </span> == * [http://wiki.eve-id.net/Main_Page CCP's EVE-Development Network wiki] - info on API, DB dumps, 3rd party tools and APIs * [http://games.chruker.dk/eve_online/ Chruker's EVE Online section] - info on all types, NPCs, missions, arcs, math, CCP releases, random stuff - JUST CHECK IT OUT! == <span id="Community" class="mw-headline"> Community </span> == * [[Category_Testing_EVEmu.html|Testing EVEmu]] * [[EVEmu_Connect.html|Connect with EVEmu Community]] - IRC, Forums, Teamspeak = <span id="Documentation" class="mw-headline"> Documentation </span> = The EVEmu project has some documentation of various parts of the server code, the client configuration and the database structure as it relates to the EVEmu server itself, however, we always need more! Here is a list of the main places to start perusing what documentation we have and following that is a list of what we'd like to do in the future. If you want to help out contributing documentation to the project, see '''Aknor Jaden''' or '''Ozatomic''' either in IRC or the Forums to ask for a Wiki account of your own, then you can start contributing. * [[EVEmu_-_Client_connection_brief.html|EVEmu - Client connection brief]] * TODO: add list of documentation that exists now * packet schematics: every packet reverse engineered and described as to what it contains and how it's used by the server * some hypothesis or theory based on how Python Service works * a document referencing classes and objects in the codebase * a document/diagram describing the flow of execution in the server, from the top process to the bottom processes, explaining how each step works * some examples how people can change the code and produce expected results = <span id="Projects" class="mw-headline"> Projects </span> = * '''IN PROGRESS''' ** [[Category_Crucible.html|Crucible Server]] ** [[EVEmu_Control_Panel.html|EVEmu Control Panel]] ** [[Category_EVEmu_Web_Portal.html|Category:EVEmu Web Portal]] * ON HOLD ** [[Category_Incursion.html|Incursion Server]] ** [[Category_Apocrypha.html|Apocrypha Server]] <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> fbb69328d8618915a572710fc09b16b2b5ae4693 Old Wiki:EVEmu Development Team 0 73 98 2021-04-03T14:22:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / '''Development Team''' (you are here) |} <br /> == <span id="EvEMU_Developers" class="mw-headline"> EvEMU Developers </span> == === <span id="Current_Main_Developers" class="mw-headline"> Current Main Developers </span> === ==== <span id="ACTIVE" class="mw-headline"> ACTIVE </span> ==== * [Senior Developer] Aknor_Jaden * [Assistant Developer] ozatomic * [Assistant Developer] Reve ==== <span id="INACTIVE" class="mw-headline"> INACTIVE </span> ==== * [Senior Developer] Bloody.Rabbit * [Senior Developer] Captnoord (Co-Founder Per Say) * [Senior Developer] Luck === <span id="Part-Time_Developers_.28Patch_Stuff_Mostly.29" class="mw-headline"> Part-Time Developers (Patch Stuff Mostly) </span> === * Almamu === <span id="Past_Developers" class="mw-headline"> Past Developers </span> === * Beast * Zhur (Founder, is MIA) == <span id="EvEMU_Control_Panel_Developers" class="mw-headline"> EvEMU Control Panel Developers </span> == === <span id="Current_Main_Developers_2" class="mw-headline"> Current Main Developers </span> === * Hurracane (Founder) </div> 5bd464b454cde2201465b7e172fe821952fe34c4 Old Wiki:EVEmu Development 0 74 99 2021-04-03T14:22:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / '''EVEmu Development''' (you are here) |} <br /> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVEmu_Development|<span class="tocnumber">1</span> <span class="toctext">EVEmu Development</span>]] ** [[#Getting_Started|<span class="tocnumber">1.1</span> <span class="toctext">Getting Started</span>]] ** [[#Tools|<span class="tocnumber">1.2</span> <span class="toctext">Tools</span>]] ** [[#Resources|<span class="tocnumber">1.3</span> <span class="toctext">Resources</span>]] ** [[#Community|<span class="tocnumber">1.4</span> <span class="toctext">Community</span>]] * [[#Documentation|<span class="tocnumber">2</span> <span class="toctext">Documentation</span>]] * [[#Projects|<span class="tocnumber">3</span> <span class="toctext">Projects</span>]] |} = <span id="EVEmu_Development" class="mw-headline"> EVEmu Development </span> = So, you want to develop for the EVEmu project, eh? Well great! We NEED as many experienced C++ coders as we can get. This page is your starting point for learning the code base, connecting with the community of developers, getting access to tools and resources you'll need to help develop for the EVEmu project. People new to developing with EVEmu should start with the [[#Getting_Started|Getting Started]] section. == <span id="Getting_Started" class="mw-headline"> Getting Started </span> == * [[Getting_Started.html|Getting Started]] * [[Development_Team.html|Development Team]] * [[Development_Practices.html|Development Practices]] * [[Source_Code.html|Source Code]] == <span id="Tools" class="mw-headline"> Tools </span> == '''[[Category_EVEmu_Tools.html|EVEmu Tools]]''' - main article on tools managed by and used by the EVEmu Developer team '''Popular tools used by EVEmu Developers:''' * [http://www.github.com/stschake/believe BeliEVE] - your tool to capture packets from EVEmu server as well as EVE live! * [[EVEmu_Control_Panel.html|EVEmu Control Panel]] - your friendly database viewer/changer tool == <span id="Resources" class="mw-headline"> Resources </span> == * [http://wiki.eve-id.net/Main_Page CCP's EVE-Development Network wiki] - info on API, DB dumps, 3rd party tools and APIs * [http://games.chruker.dk/eve_online/ Chruker's EVE Online section] - info on all types, NPCs, missions, arcs, math, CCP releases, random stuff - JUST CHECK IT OUT! == <span id="Community" class="mw-headline"> Community </span> == * [[Category_Testing_EVEmu.html|Testing EVEmu]] * [[EVEmu_Connect.html|Connect with EVEmu Community]] - IRC, Forums, Teamspeak = <span id="Documentation" class="mw-headline"> Documentation </span> = The EVEmu project has some documentation of various parts of the server code, the client configuration and the database structure as it relates to the EVEmu server itself, however, we always need more! Here is a list of the main places to start perusing what documentation we have and following that is a list of what we'd like to do in the future. If you want to help out contributing documentation to the project, see '''Aknor Jaden''' or '''Ozatomic''' either in IRC or the Forums to ask for a Wiki account of your own, then you can start contributing. * [[EVEmu_-_Client_connection_brief.html|EVEmu - Client connection brief]] * TODO: add list of documentation that exists now * packet schematics: every packet reverse engineered and described as to what it contains and how it's used by the server * some hypothesis or theory based on how Python Service works * a document referencing classes and objects in the codebase * a document/diagram describing the flow of execution in the server, from the top process to the bottom processes, explaining how each step works * some examples how people can change the code and produce expected results = <span id="Projects" class="mw-headline"> Projects </span> = * '''IN PROGRESS''' ** [[Category_Crucible.html|Crucible Server]] ** [[EVEmu_Control_Panel.html|EVEmu Control Panel]] ** [[Category_EVEmu_Web_Portal.html|Category:EVEmu Web Portal]] * ON HOLD ** [[Category_Incursion.html|Incursion Server]] ** [[Category_Apocrypha.html|Apocrypha Server]] <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> fbb69328d8618915a572710fc09b16b2b5ae4693 Old Wiki:EVEmu PROJECT PLAN 0 75 100 2021-04-03T14:22:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> '''Progress in July 2014''' '''All contributions to the main [Crucible] server.''' - eveNames table added to contain proper updates for this table. database install scripts were updated to provide the user with a message to manually unzip all zip archives in ofic-updates directory. [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Large updates to modules [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - corrected _Populate() function in DGM_Types_to_Wrecks_Table [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - minor change in Reprocessing call packet decode xmlp [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - tried minor fixes to chat class and calls to fix minor problems in chat [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - attempts to spawn missile objects, but failed. [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Added code to create ice belts and modified GM command spawnbelt [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - decent revisions to NCPAIMgr::Process() function that searches for ships to target based on cloak status, just warped in, or low standings. [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - minor changes to spawn manager to set spawn points with x,y,z offsets from original spawn point [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Attempts to update DestinyManager Warp forumlas, again with no success [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Shield, armor, and hull resonance formulas have been corrected. [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - ModuleManager changes [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Big changes and fixes to inventory management for Ship objects, now properly tracking cargo capacity usage as items are moved into and out of a Ship's inventory and different cargo bays' capacities tracked individually by flag. [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - added code to provide a printout header above any client exception [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Two changes to ModuleEffects::_populate() to fix crashes [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Removed use of PersistentEffects map since changes in dgmEffectsInfo [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - additions to the lpStore tables [http://wiki.evemu.dev/index.php?title=Deslona&action=edit&redlink=1 deslona] - update gm command giveskill for better performance [http://wiki.evemu.dev/index.php?title=Zhyrohaad&action=edit&redlink=1 zhyrohaad] - Missing Semicolon [http://wiki.evemu.dev/index.php?title=Inaughenth&action=edit&redlink=1 Inaughenth] - Include Directory Capitalization Conflict [http://wiki.evemu.dev/index.php?title=Inaughenth&action=edit&redlink=1 Inaughenth] - GetMultiOwnerEx DB query was bad sorted [http://wiki.evemu.dev/index.php?title=Reve&action=edit&redlink=1 Reve] - BUG-82 evemu_setup_database.bat is now working [http://wiki.evemu.dev/index.php?title=Reve&action=edit&redlink=1 Reve] - Fixed import path for modules [http://wiki.evemu.dev/index.php?title=Reve&action=edit&redlink=1 Reve] - [LINUX BUG] Fixed CMake file to look for the Threads after the Boost library was built [http://wiki.evemu.dev/index.php?title=Reve&action=edit&redlink=1 Reve] - Added ActivateAccelerationGate() call to KeeperService so that acceleration gates can be spawned and used [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Added a new Special Effects call to Destiny Manager to handle effects [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Ship class now has Dock() and Undock() functions [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Guilty of whitespace removal! [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - Beginnings of CMake changes that will let some developers disable [http://wiki.evemu.dev/index.php?title=Aknor&action=edit&redlink=1 Aknor] - update gm command giveskill for better performance and add checks for ex [http://wiki.evemu.dev/index.php?title=Zhyrohaad&action=edit&redlink=1 zhyrohaad] - fixed my StupidMistake....missed changing a var name, and a few other [http://wiki.evemu.dev/index.php?title=Zhyrohaad&action=edit&redlink=1 zhyrohaad] - Loot tables added [http://wiki.evemu.dev/index.php?title=Deslona&action=edit&redlink=1 deslona] - fixes to invtypestowrecks table, also adds sleeper wrecks [http://wiki.evemu.dev/index.php?title=Deslona&action=edit&redlink=1 deslona] <br /> '''Recent activity (July 2013 to July 2014)''' Module code Passive, active, weapons and mining equipment have had some work done. NPC's can (and do) attack Star maps Bookmarks Skill tree (Evil numbers) More GM commands (spawning and killing NPCs) Wrecks Many additional changes. Processing and manufacturing Some of these fixes and additions have been on private contributors servers and tested. They will be added to the core server pending more testing and approval. -- <br /> Everything below was made before 2013 SHORT TERM - 6 months This plan is subject to change and seeks to look out to no longer than the next 6 months. These tasks ARE prioritized with 1. being worked on first and so forth. Next Step Est. Time to Complete Description 1. 3 weeks AknorJaden's Secret Assignment.... SHHHHH! (it's secret) 1. 4-8 weeks Move the evemu source code Experimental branch to the Incursion v1.6 client 2. 4-8 weeks Re-design Module Manager originally written by Luck, design new abstract base classes for the different types of Modules and derive them to yield the 118 different module groups. Also, a &quot;message&quot; class, Module Action, will be designed that each Module class will populate with info that the Module Manager will use to do external actions such as apply overload damage to adjacent modules in the rack, modify ship attributes as a result of some action on this module, and apply damage/repair/attribute changes/energy transfer to a target ship by passing this object to the target ship's Module Manager. 2. 4-8 weeks MODULES PHASE 1: Research effects of active modules of all types and implement these effects along with their ship interaction and math equations to modify ship and target attributes in order to fully implement correct behavior of all active modules with a few exceptions: * All Gang Assist modules * Jump Drive modules * Interdiction Sphere launchers * Warp Disruption Field Generators * Smart Bomb and launchers * Doomsday devices (unless you warmongers really pull my leg hard) * Scan probes and launchers LONG TERM - 1 year or more This plan is subject to change and seeks to look even further out to a year or more ahead. These tasks are NOT prioritized. Est. Time to Complete Description 8 weeks FLEETS: Research fleet packets and implement formation of fleets and all operations used on fleets 8 weeks MODULES PHASE 2: Research advanced effects and destiny interaction for the advanced types of modules that weren't implemented in PHASE 1: * All Gang Assist modules * Jump Drive modules * Interdiction Sphere launchers * Warp Disruption Field Generators * Smart Bomb and launchers * Doomsday devices (unless you warmongers really pull my leg hard) * Scan probes and launchers 2-4 weeks CORPORATIONS PHASE 1: Implement Corporations Registry, Role setting, and member joining 2-4 weeks CORPORATIONS PHASE 2: Implement Corporations standings, shares, voting, contracts, etc 2 weeks NPC SPAWN/AI PHASE 1: Roll any outstanding patches/work on NPC spawning/AI into Experimental branch and get basic NPC ship/fleet spawning working and NPC ship movement, targeting, combat, and loot drop working with some very basic embedded AI. 8-12 weeks NPC SPAWN/AI PHASE 2: Integrate some scripting language into the NPC AI system to allow custom AI scripted behavior to control NPC ships/fleets. Also, work on spawning more advanced 2-4 weeks MISSIONS/COMPLEXES PHASE 1: Develop way to capture mission sites' structures from EVE live and replicate and spawn them at will. 8-12 weeks MISSIONS PHASE 2: Capture mission profiles and feed them to mission manager to implement mission scripting. 2-4 weeks COMPLEXES PHASE 2: Create a spawn manager for Complexes connected to Cosmic Anomalies and Cosmic Signatures and drive their spawn behavior on System Security Level 4-8 weeks COMPLEXES PHASE 3: Advance spawning of Cosmic Signature and Cosmic Anomaly complexes using Sovereignty structures' upgrade levels - This requires at least Dominion Client support AND research into Sovereignty structure packets and behavior EVEmu PROJECT DEVELOPMENT STATUS Last Updated: 2011-01-25 by AknorJaden Currently, active development since 2010-07-08 has been done on the EXPERIMENTAL branch. A Short recent history of notable development activities: DATE BRANCH ACTION COMMITTED? AUTHOR DESCRIPTION [2011-04-27] Experimental COMMIT YES AknorJaden Added the Kenny Translator to the chat system using a new slash command /kenny on/off [2011-04-18] Experimental COMMIT YES AknorJaden Last of the series of patches for Merging Attribute Rewrite branch into the Experimental branch and then make it compilable [2011-02-28] Experimental PATCH NO AknorJaden Major expansion of Celestial object spawning in-game, ship eject/boarding, cargo container usage, cargo jettison, jettison/launch for corp/self - PATCH POST [2011-01-31] Experimental PATCH NO 6opoDuJIo Small expansion to NPC ship spawning and control - PATCH POST [2011-01-07] Attribute_Rewrite PATCH YES AknorJaden Fixes to Captnoord's attribute_rewrite branch to make it operational and ready for merge into experimental branch - PATCH POST [2010-12-24] Experimental PATCH YES AknorJaden Just in time for X-mas! Major fixes to the Bookmark system - PATCH POST [2010-12-15] Attribute_Rewrite PATCH YES Captnoord Posted his first draft of a working version of his attribute_rewrite branch [2010-12-07] Experimental PATCH YES AknorJaden Major fixes to the Chat system - PATCH POST [2010-11-11] Experimental PATCH YES shanems3 Some server control/install stuff added to DBeditor - PATCH POST [2010-11-06] Experimental PATCH YES Beast Fixes to the Wallet to view Character and Journal transactions - PATCH POST [2010-11-05] Experimental PATCH YES Almamu Ban system in place - PATCH POST [2010-10-28] Experimental PATCH YES AknorJaden Bunch of fixes and new features for DBeditor - PATCH POST [2010-10-24] Experimental PATCH YES Tayron Fixes use of clones and upgrading them - PATCH POST [2010-10-06] Experimental PATCH YES Beast The Market works! \o/ - PATCH POST [2010-10-03] Experimental PATCH YES Beast Some fixes to the chat system - PATCH POST EVEmu Developers Work-In-Progress Board This table contains the list of EVEmu's currently active developers and what they're currently working on. Developer What they're working on... When they started working on it... When they expect to finish... Bloody.Rabbit unknown unknown unknown Luck Re-designing Module Manager with AknorJaden's help End of April Mid-June to end of June 2011 Captnoord unknown unknown unknown Beast unknown unknown unknown Oza unknown unknown unknown DanTheBanjoman? unknown unknown unknown Shanems3 Decoding database for wiki/editing Client stuff files/adding features to EveMU dbeditor Sept. When i finish. :) [http://wiki.evemu.dev/index.php?title=Aknor_Jaden&action=edit&redlink=1 Aknor Jaden] Secret Assignment Mid-May 2011 Mid-June 2011 [http://wiki.evemu.dev/index.php?title=Aknor_Jaden&action=edit&redlink=1 Aknor Jaden] Re-designing Module Manager and Module classes with Luck's help End of April 2011 End of July 2011 ??? 6opoDuJIo some AI api April 2011 long time to work with that... EVEmu Testers Work-In-Progress Board This table contains the list of EVEmu's currently active testers and what they're currently working on. Testers What they're working on... When they started working on it... When they expect to finish... Code_Red Helping Aknor with Warp and other fundamentals of eve 3/3/11 When ever aknor is done coding. DaVinci? Work with russian-languaged community. Working with Combo revision for apocrypha a few years ago when even i'll stop. </div> a2960a80461510f628234fbb63f7b0653ee61d7d Old Wiki:EVEmu Thin Client 0 76 101 2021-04-03T14:22:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> TBD </div> bf3db1508e4bbba5789fd38a76d4e14985c67ba8 Old Wiki:EVEmu Wiki About 0 77 102 2021-04-03T14:22:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="noarticletext"> There is currently no text in this page. You can [[index.php/Special:Search/About|search for this page title]] in other pages, or <span class="plainlinks">[http://wiki.evemu.dev/index.php?title=Special:Log&page=EVEmu_Wiki:About search the related logs]</span>. </div> </div> 76f149220074569f6f4ef3484b0cb759769fadbe Old Wiki:EVEmu Wiki Current events 0 78 103 2021-04-03T14:22:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="noarticletext"> There is currently no text in this page. You can [[index.php/Special:Search/Current_events|search for this page title]] in other pages, or <span class="plainlinks">[http://wiki.evemu.dev/index.php?title=Special:Log&page=EVEmu_Wiki:Current_events search the related logs]</span>. </div> </div> dc41de7856f288def41fa1c26282dccbbb010d5a Old Wiki:EVEmu Wiki General disclaimer 0 79 104 2021-04-03T14:23:07Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="noarticletext"> There is currently no text in this page. You can [[index.php/Special:Search/General_disclaimer|search for this page title]] in other pages, or <span class="plainlinks">[http://wiki.evemu.dev/index.php?title=Special:Log&page=EVEmu_Wiki:General_disclaimer search the related logs]</span>. </div> </div> ed11779d82676302b09daf1668d53b9fc3e18ade Old Wiki:EVEmu Wiki Privacy policy 0 80 105 2021-04-03T14:23:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="noarticletext"> There is currently no text in this page. You can [[index.php/Special:Search/Privacy_policy|search for this page title]] in other pages, or <span class="plainlinks">[http://wiki.evemu.dev/index.php?title=Special:Log&page=EVEmu_Wiki:Privacy_policy search the related logs]</span>. </div> </div> 4273151214235718556b8564aeb396aa91b319ac Old Wiki:EVE Protocol 0 81 106 2021-04-03T14:23:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="EVE_Protocol" class="mw-headline"> EVE Protocol </span> = Information about the EVE network protocol. == <span id="Basic_Protocol" class="mw-headline"> Basic Protocol </span> == Because they use TCP as the network transport, the on-wire protocol is rather trivial. Basically the stream is made up of 4 bytes of packet length (little endian), followed by that many bytes of packet data. The packet data may be compressed with gzip at this point, and basically you just look at the first byte, and if it is not their &quot;stream marker&quot;, then you feed it to gzip and see if you get the stream marker then. The stream marker is a ~ (0x7E). Once extracted, there are four bytes the first of which is a counter used during unmarshaling (so it could be a little endian 4-byte counter, havent seen any evidence either way). After that, you get a &quot;blue&quot; marshaled stream. == <span id="Marshaling" class="mw-headline"> Marshaling </span> == The marshaling scheme is a recursive system basically geared towards taking an arbitrarily complex python object/variable and turning it into a byte stream. This is similar in idea to the binary format Pickling in native python, without the complexities of their mini-machine language stuff, and with special support for a few things. each marshaled &quot;packet&quot; consists of exactly one thing in it, and because of that, the &quot;root&quot; object is almost exclusively some sort of container object, and the contents of that container SHOULD consume all of the remaining bytes in the packet. The EVE client calls some embedded python stuff in blue.dll to do the marshaling/unmarshaling and gets back the python object and does as much as they can in python. EVEmu is currently not going to take this approach, as there is currently no embedded python or anything else in the server. The details of the marshaling strategy are in the code, its not really worth duplicating them here. </div> 37acabd53a2227ce66b60a428443446a7e402470 Old Wiki:Eve-server 0 82 107 2021-04-03T14:23:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#EVEmu_eve-server_project|<span class="tocnumber">1</span> <span class="toctext">'''EVEmu eve-server project'''</span>]] * [[#eve-server.cpp|<span class="tocnumber">2</span> <span class="toctext">'''eve-server.cpp'''</span>]] ** [[#System-Wide_Resources|<span class="tocnumber">2.1</span> <span class="toctext">System-Wide Resources</span>]] ** [[#Service_Managers|<span class="tocnumber">2.2</span> <span class="toctext">Service Managers</span>]] *** [[#Working_with_Service_Managers|<span class="tocnumber">2.2.1</span> <span class="toctext">Working with Service Managers</span>]] ** [[#Major_Game_Features_and_their_Sections_in_eve-server|<span class="tocnumber">2.3</span> <span class="toctext">Major Game Features and their Sections in eve-server</span>]] ** [[#Global_Constants_Structures|<span class="tocnumber">2.4</span> <span class="toctext">Global Constants Structures</span>]] * [[#Conversations_with_Luck_on_eve-server|<span class="tocnumber">3</span> <span class="toctext">Conversations with Luck on eve-server</span>]] |} == <span id="EVEmu_eve-server_project" class="mw-headline"> '''EVEmu eve-server project''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to write code for it is already in place in the other projects. <br /> == <span id="eve-server.cpp" class="mw-headline"> '''eve-server.cpp''' </span> == This project contains the single most important file in the entire solution: '''eve-server.cpp'''. (it's named &quot;eve-server&quot; for a reason :) ). eve-server.cpp contains the primary loop of the server, which, while the server is running, performs the following tasks: # Initialize logging, read configuration, connect to database # Start API and Image servers # Create various [[#System-Wide_Resources|system-wide resource objects]] # Register all [[#Service_Managers|services]] # Create game memory objects: [http://wiki.evemu.dev/index.php?title=Category:Item_Factory&action=edit&redlink=1 Item Factory], [[Category_Module_Manager.html|Module Manager]] effects &amp; info tables # LOOP: ## Check for incoming packets on the TCP connection ## If there is an incoming packet, decode it ## Make the appropriate response ## Send the response to the client that sent the request ## Scan through entire [http://wiki.evemu.dev/index.php?title=Category:Entity_List&action=edit&redlink=1 Entity List] for any items that need actions taken (modules changed, timers expired, etc) ## Scan through entire list of [[#Service_Managers|services]] to process any actions pending ## Monitor for Ctrl+C server shutdown command # END LOOP # shut down logging, API server, Image server, TCP server # close logfile # Entity List destructor invokes save-off to database of all modified objects That is folks. That's all it does. In fact that's all the entire project does...ever. All of your coding that you will more than likely be doing will be focused solely on number 3. 1, 2, and 4 are pretty much done, and unless you're doing some serious revision of the entire server structure, or just like breaking things, you'll probably never touch them. Fortunately for you, 3 covers an immense amount of code. In fact, it is almost all of the server code. Basically, number 3 is broken into various service managers. Service Managers are discussed later in this article. So that is basically how the eve server in its entirety functions. A call is received from the client, processed by the appropriate service manager/service, and a response is sent. During that time, all manner of things can happen. The general structure of the code is as follow: Service Managers and their associated services are found in code files called SomethingService.cpp or SomethingServiceMgr.cpp. Anything that requests information from the evemu database is found in code files named SomethingDB.cpp. Things just named Something.cpp contain data structures and the actual code behind a service call. What you will usually see is that the service call, like Handle_Add, will have statements to make sure that it can decode the arguments passed to it by the client. Once that is affirmed, the Handle_Something function will usually call a (usually protected) function that actually executes whatever the service is supposed to do. The rest of the stuff are helper functions, such as packet decodes, query formatters and so on. Here is pseudocode of what eve-server.cpp does and what happens inside: <pre>At start-up, print splash info on Copyright, licensing, EvE client version Set current time Load server configuration from local eve-server.xml via eve-server &gt; EVEServerConfig Load server log settings from local log.ini via common? &gt; LogNew Connect to evemu mysql database using info from local eve-server.xml via common? &gt; DBcore Create the DGM Type Attribute Manager via eve-server &gt; dgmtypeattributemgr Start the TCP server via eve-common &gt; EVETCPServer -and- common? &gt; TCPServer Make the Item Factory via eve-server &gt; ItemFactory Create the main Service Manager via eve-server &gt; PyServiceMgr Create the Command Dispatcher object via eve-server &gt; CommandDispatcher Register all commands via eve-server &gt; AllCommands.h Register all services (see the List of Service Managers below for a complete list) via eve-server &gt; PyServiceMgr Cache Database Tables using Object Cache Service via eve-server &gt; ObjCacheService Set Server to ONLINE via eve-server &gt; PyServiceMgr ENTER MAIN LOOP: ----Set current time and Get tick count ----Check TCP Server's TCP connection stack for the presence of any new TCP connections from EvE clients ----Add new TCP connection from the TCP Server's TCP connection stack onto the Entity list (list of clients connected to evemu server) ----via eve-server &gt; EntityList &gt; Add() ----Process Entity List - run through list of all Clients connected to evemu server ----via eve-server &gt; EntityList &gt; Process() ----Process Service List - run through list of all services registered with PyServiceMgr? ----via eve-server &gt; PyServiceMgr ----Get tick count again, calculate remaining time for thread sleep and SLEEP that time using Sleep() ----IF Server receives SHUTDOWN signal (Ctrl-C, I think), EXIT MAIN LOOP END LOOP Close TCP Server Set Server to OFFLINE Close Log file EXIT MAIN - ends program execution</pre> === <span id="System-Wide_Resources" class="mw-headline"> System-Wide Resources </span> === eve-server contains many &quot;singleton&quot; objects that have exactly one and only one instance throughout the entire server. These objects are singular resources for system-wide access and functions that anything anywhere in the server code base may need access to for various reasons, such as posting a log message to the main server log, accessing the server's database connection to the [http://wiki.evemu.dev/index.php?title=Category:EVEmu_Database&action=edit&redlink=1 EVEmu Database], or any number of in-memory database objects for the [http://wiki.evemu.dev/index.php?title=Category:ModuleManager&action=edit&redlink=1 Module Manager] or other critical services in the code base. Here is a list of the current system-wide singleton objects available anywhere in the codebase using the shown mnemonic: {| ! Service Object Mnemonic ! Description |- | sMarshalStringTable | |- | sDatabase | |- | sLog | |- | sAPIServer | |- | sImageServer | |- | sDGM_Effects_Table | |- | sDGM_Skill_Bonus_Modifiers_Table | |- | sDGM_Ship_Bonus_Modifiers_Table | |- | sDGM_Implant_Bonus_Modifiers_Table | |- | (other ModuleManager related sDGM_XXXXX_Table objects go here) | |- | sEntityList | |- | sConfig | |- | sLiveUpdateDB | |} === <span id="Service_Managers" class="mw-headline"> Service Managers </span> === When the client sends a request to the server, it first sends the service manager name, and then the name of the service, along with a additional arguments like itemID's clientID's...you get the picture. The server decodes the service manager name, then calls upon the appropriate service manager, and passes along the service name and the arguments that go along with it. The service manager takes this and looks through all of the services that it is capable of performing. Once the service has been found, it invokes a new instance of that service, and passes along the arguments, which are processed by the service, and the appropriate response is sent back to the service manager, which sends that to the overall PyServiceManager?, which sends the response to be encoded and send to the TCP connection, where it is the received by the client. If everything went well, you wont see a nice little message called &quot;BeanCount?&quot; pop up in your server window ( unlikely ). If you do, you screwed up somewhere( very likely :D ). Now, there are service managers for just about everything you can think of. There's a Character service manager, Ship service manager, Certificates service manager, Module service manager, NPC service manager... basically any element in the game that actually DOES anything has a service manager associated with it, because besides service calls, the only thing the client ever sends to the server is errors...which, wait for it...call a service called BeanCount?. There's even a service manager for service managers, called PyServiceMgr?, which handles dispatching service calls from the client to the right service manager. So basically, if you want to figure out why something in the game doesn't work, you need to know 2 things: the service manager name and the service name itself. ==== <span id="Working_with_Service_Managers" class="mw-headline"> Working with Service Managers </span> ==== Tip: if your implementing a service, to register it with a service manager, you need to use a function called PyCallable_REG_CALL( service manager name, serivce name) otherwise the service manager won't know about your shiny new service :) Tip: you usually don't need the service manager name though, as you can just search the solution for Handle_[service name] since no two service calls have the same name, or if they do, it will become very apparent that one of them is not what your looking for. For instance, if the client calls Add, and you look for Handle_Add, you may run into a Handle_Add, and realize its under the character creation service manager. Obviously, as it was called when you moved an item into your inventory, this is not what your looking for. Instead you should be looking for something in the InventoryItem? manager or something similar. '''List of Service Managers''' NOTE: This list shows all Service Managers registered with the EVEmu Server as of revision 952 of the experimental branch TODO: Add one-line descriptions for all service managers '''ClientStatsMgr''' '''AgentMgrService''' '''MissionMgrService''' - manages player interaction with player missions / giving players missions, accepting, declining, etc '''AccountService''' '''UserService''' '''AlertService''' '''AuthService''' '''BillMgrService''' '''BookmarkService''' - manages player interaction with Bookmarks in all ways, creation, deletion, usage, conversion to cargo item, etc. '''CertificateMgrService''' - manages player interaction with the Certificates Manager interface, including browsing and awarding of certificates '''CharacterService''' '''CharMgrService''' '''ConfigService''' '''LanguageService''' '''CorpMgrService''' '''CorpStationMgrService''' '''CorporationService''' - manages player interaction Corporation - make corp, dissolve, manage roles of corp members, EVERYTHING in Corp Management window, etc... '''CorpRegistryService''' - manages player interaction players registration of the corporation '''LPService''' - manages player interaction with loyalty points, which he has for certaion faction ingame '''DogmaIMService''' '''InvBrokerService''' '''LSCService''' - Large Scale Chat service '''ObjCacheService''' '''LookupService''' - handles requests to lookup various in-game items, solar systems, characters, corporations and provide an orange auto-link to those resources in the client chat window '''VoiceMgrService''' - manages player interaction EVE in-game voice '''ShipService''' '''InsuranceService''' - manages player interaction with the Eve Ship Insurance and stored insurance contracts in the database '''BeyonceService''' '''MapService''' '''OnlineStatusService''' '''Standing2Service''' '''WarRegistryService''' '''FactionWarMgrService''' '''StationService''' - manages player interaction with bounty, insurance, clone, agents, owerall everthing what can be found in the station '''StationSvcService''' '''JumpCloneService''' - manages player interaction with Jump Clones '''KeeperService''' '''DungeonService''' '''SkillMgrService''' - manages player interaction with the Eve Skills browser and training queue '''TutorialService''' - manages player interaction with the Eve Tutorials '''PetitionerService''' - manages player interaction with petition service from the game master to the player '''SlashService''' '''MarketProxyService''' - this manages the entire Market experience in Eve, anything to do with the Market is done in here (buy orders, sell orders, history, etc) '''ContractMgrService''' - this manages the entire Contracts market in Eve, including Want-to-Sell contracts, Want-to-Buy contracts. Auction contracts, Corporation contracts, and player to player contracts '''ReprocessingService''' - this manages everything to do with using Reprocessing services inside stations '''FactoryService''' - this manages everything to do with Manufacturing items and ships using Industry services inside stations or at POS's with appropriate modules '''RamProxyService''' '''PosMgrService''' - this manages everything to do with Player Owned Stations (POS), shields, automatic defenses, fuel consumption, etc. '''NetService''' '''TradeService''' '''charUnboundMgr''' '''Missing Services ????''' <br /> '''This is a list of service managers that have not even been created to handle parts of the game:''' <pre>ScanMgrService - handles the use of the system scanner and scan probes deployed within a solar system Asteroid Belt spawn service ?? Rat spawn service (could this be the DungeonService? ??) - this would include wormhole rats (Sleepers) as well Wormhole spawn service GangMgrService - handles the interaction and collaboration of multiple players through Fleets Sovereignty service Planetary Management service</pre> === <span id="Major_Game_Features_and_their_Sections_in_eve-server" class="mw-headline"> Major Game Features and their Sections in eve-server </span> === Major Game Feature Description Account? Handles account services Character? Handles services and functions related to EVE characters Chat? Handles services and functions related to Chat and EVEmail Corporation? Handles services and functions related to Corporations Inventory? Handles services and functions related to Items, Attributes, Inventory, etc Manufacturing? Handles services and functions related to Manufacturing Map? Handles services and functions related to the EVE universe map Market? Handles services and functions related to the in-game Market Mining? Handles services and functions related to Mining Missions Handles services and functions related to Agents and Missions NPC Handles services and functions related to NPCs POSMgr Handles services and functions related to POS stations Scanning Handles services and functions related to System and Scan Probe Scanning of solar systems Ship Handles services and functions related to Ships, Destiny, Insurance, Modules, Combat, Targeting Spawn? Handles services and functions related to Spawning NPC rats, Asteroid belts, Wormholes, etc Standing? Handles services and functions related to Standings of all kinds, Faction War, Player War Station Handles services and functions related to Station Services System Handles services and functions related to Systems, Dungeons, Celestial objects, Bubble manager, Bookmarks, Scenarios, Solar systems, etc Trade? Handles services and functions related to Inter-player Trading inside stations Tutorial? Handles services and functions related to Tutorials Client? Handles services and functions related to user Clients ClientSession? Handles services and functions related to user Client sessions EVEmu Coding Aids === <span id="Global_Constants_Structures" class="mw-headline"> Global Constants Structures </span> === The constants structures listed below are manually created from queries on the mysql database tables, so when changes are made to the database in these areas, these constants structures would need to be updated. Some of these structures are incomplete and need to be completed. /eve-common/tables/invCategories.h - EVEDB::invCategories:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invCategories' database table as constants that can be used for whatever you need /eve-common/tables/invGroups.h - EVEDB::invGroups:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invGroups' database table as constants that can be used for whatever you need /eve-common/network/packet_types.h - EVEItemFlags:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all possible values that can be used in the flag field of an inventory item listed in the 'entity' table /eve-common/tables/invCategories.h - other constants structures listed in this file include MACHONETMSG_TYPE, MACHONETERR_TYPE, EVEItemType (this is incomplete), EVEItemChangeType, EVEContainerTypes, EVERookieShipTypes, EVESkillID (this is incomplete), EVEItemTypeID (this is incomplete), EVERace, EVEStandingEventTypeID, an enum containing account roles with ROLE_ prefixes, a group of Corporation Role flags as static const types and some combinations that are useful such as corpRoleAll that grants all roles, or corpRoleAllContainer that grants access to all corporation containers, EVEEffectID, JournalRefType?, EVEAccountKeys, fmtMappingType, EffectCategories? There are also a number of itemID value range checking functions to determine if an itemID found in the entity table is an Agent, or a Stargate, or other specific things. IsAgent?(), IsStaticMapItem?(), IsRegion?(), IsConstellation?(), IsSolarSystem?(), IsUniverseCelestial?(), IsStargate?(), IsStation?(), IsTrading?(), IsOfficeFolder?(), IsFactoryFolder?(), IsUniverseAsteroid?(), IsScenarioItem?() Object Oriented Design of the EVEmu Server The entire EVEmu server is designed with an object-oriented method. Whether the current implementation is good enough is not the subject of this section, but rather to simply document what that design is. The EVE universe is a single galaxy comprised of Solar Systems, all linked by stargates. Each Solar System contains a Star, planets, moons, stations, and other celestial objects. They also contain ships flown by pilots and ships spawned by the Server, NPC ships belonging to the many legit NPC Corporations or Pirate organizations. CLASS: EntityList - The TOP Object EVEmu's top object is the EntityList?, found in include/eve-server/EntityList.h. This class is a Singleton and so only ONE instance exists. It contains a protected member variable system_list m_systems. This list contains ALL Solar System objects that exist in the universe. It is a std::map&lt;&gt; construct with a uint32 key value and a SystemManager? secondary value. The EntityList? object also contains a list of all clients connected to the EVEmu server via a protected member variable client_list m_clients, which is a std::list&lt;&gt; containing the Client * reference pointers for all clients connected to the server. Important Methods Add(Client client) - call this passing in a pointer to a pointer of a Client object to add clients to the EntityList? FindOrBootSystem?(uint32 systemID) - call this passing in a uint32 value equal to the solarSystemID from the mapDenormalize table in order to either Find or Boot that solar system. If the referenced solar system has not had its own SystemManager? object created yet since server start, this function will do that, otherwise, the pointer to the referenced solar system SystemManager? object that already exists will be returned. Broadcast(), Multicast(), Unicast() - These broadcast functions are ways to call Client::SendNotification?() on one or more Client objects referenced in the m_clients list. FindCharacter?(), FindByShip?(), FindAccount?(), FindByStation?(), FindByRegion?() - These functions serve to find Client reference pointers using characterID, characterName, shipID, accountID, stationID, or regionID, the last two return a std::vector&lt;&gt; list of Client reference pointers. Warning: Each of these Find functions make use of simple for() loop search methods, so with very largely populated EVE universes, these functions could potentially take a long time to execute, so make very sparse use of them. Consider strongly a more efficient way of finding the Client object of some character or ship piloted by a character BEFORE resorting to using these functions. CLASS: SystemManager? The SystemManager? class, found in eve-server/system/SystemManager, is the next class object down in the hierarchy, which manages each Solar System. So, as characters log into the server, they enter the game world in specific Solar Systems and if those systems have not been created yet, a SystemManager? object for each of them is created and stored in a list inside the EntityList? as mentioned above. This class object contains a number of things localized to a Solar System and they include a SystemEntity? list in the form of a std::map&lt;&gt; that holds pointers to SystemEntity? objects, each of which are references to objects that exist in that Solar System, a systemID value, a systemName value, a systemSecurity value, its own SpawnManager? object, and its own SystemDB object providing access to the database. NOTES: Much work is needed to manage Asteroid Belt, NPC ship/fleet, Cosmic Anomaly, and Cosmic Signature spawning in each Solar System. It may be that the SpawnManager? object owned by each SystemManager? object will take care of these spawnings, but the SpawnManager? objects need entries in the 'spawns' and 'spawnGroups' tables in the Database. NPC ships/fleets need targets when they spawn, especially when a ship warping to a location within a solar system triggers a spawn, as would happen when entering the grid of a Cosmic Signature marking a complex, or an Asteroid Belt spawning rats. So, the SystemManager? should be expanded to hold a list of ships in space, perhaps, and not just a list of SystemEntities?, however, more research into the SystemEntities? classes are necessary to see if scouring the list of those in a solar system, held by the m_entities protected variable will work as a means for a particular NPC ship/fleet to gather a list of targets in its immediate vicinity. CHANGES It has been proposed that we make several std::map protected member variables along with Add(), Get(), Find(), and Remove() support functions to separate out different kinds of SystemEntity? objects, such as ships in space, cargo containers, POS modules, drones, NPC ships, asteroids, cosmic signatures and anomalies, and other dynamic objects Use simple array objects for static objects like NPC stations, stars, planets, moons, stargates This will make it easier to get lists of targets for NPC ship engagements Important Methods BootSystem?() - This loads the solar system celestials via the _LoadSystemCelestials() call and loads the system dynamics via the _LoadSystemDynamics() call. There is also code here that loads all spawns and fires up the initial spawn via the SpawnManager?, however, this code is commented out with a note that it makes the &quot;client angry&quot;. More research is needed to find out what's going wrong, if anything. ProcessDestiny?() - This is called once for each Destiny second. More research is needed to determine exactly what this does. AddClient?() - Add a client to the list of SystemEntity? objects. This would be done if a pilot's ship jumps into this solar system either with a jump capable ship or a stargate. RemoveClient?() - Removes a client from the list of SystemEntity? objects. This would be done if a pilot's ship jumps out of this solar system either with a jump capable ship or a stargate. AddNPC() - Adds an NPC SystemEntity? to the SystemEntity? list. This would be done when an NPC ship/fleets spawns or is triggered due to a incoming warp to a location where the spawn is located. RemoveNPC() - Removes an NPC SystemEntity? from the SystemEntity? list. This would be done when an NPC ship/fleets is destroyed or de-spawns from a location. AddEntity?() - Adds a generic SystemEntity? object to the list of SystemEntity? objects. RemoveEntity?() - Removes a generic SystemEntity? object from the list of SystemEntity? objects. CLASS: SystemEntity? Found in eve-server/system/SystemEntity.h ABSTRACT CLASS : NO INSTANCES ALLOWED TBD Important Methods TBD CLASS: ItemSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: DynamicSystemEntity? derived from ItemSystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: InanimateSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntities.h CLASS: SimpleSystemEntity? derived from InanimateSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemPlanetEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStationEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStargateEntity? derived from SystemStationEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemSimpleEntity? derived from SystemPlanetEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemDungeonEntranceEntity? derived from ItemSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: tbd Found in ??? == <span id="Conversations_with_Luck_on_eve-server" class="mw-headline"> Conversations with Luck on eve-server </span> == [14:41] '''&lt;@AknorJaden_&gt;''' well, i've been trying to look at different sections of the eve-server to fix little problems like undocking, chats, etc. but i haven't been able to make sense of the API between the service managers and the eve-common stuff that receives, decodes packets, then encodes and sends packets back to the clients [14:42] '''&lt;@Luck&gt;''' okay [14:42] '''&lt;@Luck&gt;''' everything is organized into different types of calls [14:42] '''&lt;@AknorJaden_&gt;''' i guess it's just that there is SO much stuff [14:42] '''&lt;@AknorJaden_&gt;''' yeah saw that [14:42] '''&lt;@Luck&gt;''' lol [14:42] '''&lt;@Luck&gt;''' each call is expecting a different way to decode the packets [14:43] '''&lt;@Luck&gt;''' so you declare the object from eve-common [14:43] *** DanTheBanjoman has joined #evemu [14:43] *** ChanServ sets mode +o DanTheBanjoman [14:43] '''&lt;@AknorJaden_&gt;''' ok, but i bet there isn't some kind of class diagram for all the object classes in the code base, is there? [14:43] '''&lt;@Luck&gt;''' call decode on the packet [14:43] '''&lt;@Luck&gt;''' sure there is [14:43] '''&lt;@AknorJaden_&gt;''' really? [14:43] '''&lt;@Luck&gt;''' all of those packet decoding is generated from xml files by the xmlpacketgen project [14:43] '''&lt;@AknorJaden_&gt;''' yeah, i figured that out at the highest level [14:44] '''&lt;@AknorJaden_&gt;''' those xmlp files get run through xmlpktgen to create the .h files [14:44] '''&lt;@Luck&gt;''' yea [14:45] '''&lt;@Luck&gt;''' so you look at those xml files [14:45] '''&lt;@AknorJaden_&gt;''' do understand the packet structure, eh? [14:45] '''&lt;@Luck&gt;''' and you get an idea of what each call does [14:45] '''&lt;@Luck&gt;''' ? [14:45] '''&lt;@Luck&gt;''' do i? [14:45] '''&lt;@AknorJaden_&gt;''' no, lol [14:45] '''&lt;@AknorJaden_&gt;''' i meant &quot;to&quot;, not &quot;do&quot; [14:45] '''&lt;@Luck&gt;''' oh [14:46] '''&lt;@Luck&gt;''' yes [14:46] '''&lt;@AknorJaden_&gt;''' ok [14:46] '''&lt;@Luck&gt;''' they were all determined by packet sniffing [14:48] '''&lt;@AknorJaden_&gt;''' ok [14:48] '''&lt;@Luck&gt;''' so what else do you want to know? [14:48] '''&lt;@AknorJaden_&gt;''' lol....everything ;) [14:49] '''&lt;@AknorJaden_&gt;''' maybe i should start from the top: packets come in from the client and are received where? [14:50] '''&lt;@Luck&gt;''' the TCP connection [14:50] '''&lt;@AknorJaden_&gt;''' oh right [14:50] '''&lt;@Luck&gt;''' :) [14:50] '''&lt;@Luck&gt;''' they are passed to the PyDispatcher [14:51] '''&lt;@AknorJaden_&gt;''' ah [14:51] '''&lt;@Luck&gt;''' which looks at the information contained in the packet that says which service the client is calling [14:51] '''&lt;@AknorJaden_&gt;''' ok, starting to make sense [14:52] '''&lt;@AknorJaden_&gt;''' so then it calls that appropriate service, right, such as LSCService for chats/mails? [14:52] '''&lt;@Luck&gt; the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function''' [14:52] '''&lt;@Luck&gt;''' yes [14:52] '''&lt;@Luck&gt;''' and LSCService looks to see if it has a function to handle the particular call [14:52] '''&lt;@Luck&gt;''' like Handle_SendMessage [14:53] '''&lt;@Luck&gt;''' time to commit [14:53] '''&lt;@AknorJaden_&gt;''' ok [14:55] '''&lt;@AknorJaden_&gt;''' got it [14:59] '''&lt;@AknorJaden_&gt;''' so now that the packet has called the right function in the right service, how does the packet info get used (is it the &quot;args&quot; object) and then there's the use of that info to do whatever the function called is supposed to do [14:59] '''&lt;@Luck&gt;''' you notice that every function called Handle_Something [15:00] '''&lt;@AknorJaden_&gt;''' yeah, lot's of those, but not all [15:00] '''&lt;@Luck&gt;''' i mean [15:00] '''&lt;@AknorJaden_&gt;''' nevermind, pretty much all of em [15:00] '''&lt;@Luck&gt;''' every function that has a name like that has the same argument [15:00] '''&lt;@Luck&gt;''' PyCallArgs &amp;args [15:00] '''&lt;@AknorJaden_&gt;''' yeah, i was just about to type that [15:01] '''&lt;@Luck&gt;''' not all of them ( there are a few exceptions) but almost all [15:01] '''&lt;@Luck&gt;''' the first part of the function will declare a call object [15:01] '''&lt;@AknorJaden_&gt;''' and the value &quot;call&quot; is polymorphic, right? where PyCallArgs is some kind of base class for all packets? [15:01] '''&lt;@Luck&gt;''' Call_SendMessage args; [15:02] '''&lt;@Luck&gt;''' then you use that Call object to decode the PyCallArgs&amp; call [15:02] '''&lt;@Luck&gt;''' args.Decode( call.tuple ) [15:02] '''&lt;@Luck&gt;''' once you do that, the args object will have the appropirate information in it [15:02] '''&lt;@AknorJaden_&gt;''' now, what is the call.tuple? [15:02] '''&lt;@AknorJaden_&gt;''' or don't i care at this point? [15:02] '''&lt;@Luck&gt;''' call is the PyCallArgs object argument passed to the function [15:03] '''&lt;@Luck&gt;''' and call.tuple means to decode the tuple inside the PyCallArgs object [15:03] '''&lt;@AknorJaden_&gt;''' oh, right, duh. why the tuple attribute? how come that's not private. aren't most data members of a class supposed to be private? [15:03] '''&lt;@AknorJaden_&gt;''' ok [15:03] '''&lt;@Luck&gt;''' not ones that we want to acces [15:03] '''&lt;@Luck&gt;''' :) [15:04] '''&lt;@AknorJaden_&gt;''' call-&gt;getTuple() wouldn't be better? [15:04] '''&lt;@AknorJaden_&gt;''' not so encapsulated [15:04] '''&lt;@Luck&gt;''' in some respects yes [15:04] '''&lt;@AknorJaden_&gt;''' ok [15:10] '''&lt;@AknorJaden_&gt;''' so, then i guess the rest of the story is to go some place in the code to understand *what* is in the args object once it's been decoded, and then start using that info? [15:11] '''&lt;@Luck&gt;''' it goes to figure out what is in the call object [15:11] '''&lt;@Luck&gt;''' PyCallArgs &amp;call [15:11] '''&lt;@AknorJaden_&gt;''' what does, the .Decode() method? [15:11] '''&lt;@Luck&gt;''' args is the result of the decoded call [15:11] '''&lt;@AknorJaden_&gt;''' ok [15:12] '''&lt;@Luck&gt;''' args can then be used normally [15:13] '''&lt;@Captnoord&gt;''' re [15:14] '''&lt;@AknorJaden_&gt;''' ok, so args is an object that has data structures inside that contains info for the function called? [15:14] '''&lt;@Captnoord&gt;''' AknorJaden: the reason for the objects not to have them protected is because of the packet code generator [15:14] '''&lt;@AknorJaden_&gt;''' you mean xmlpktgen? [15:14] '''&lt;@Captnoord&gt;''' yup [15:14] '''&lt;@AknorJaden_&gt;''' ok [15:14] '''&lt;@Captnoord&gt;''' which is a piece of shit [15:15] '''&lt;@AknorJaden_&gt;''' LOL [15:15] '''&lt;@Luck&gt;''' hahaha [15:15] '''&lt;@Luck&gt;''' he's right [15:15] * @Luck waves a Captnoord [15:15] '''&lt;@AknorJaden_&gt;''' it's ok. i'm no OOD expert, but i do undedrstand encapsulation [15:16] * @Captnoord waves back..... [15:17] '''&lt;@Captnoord&gt;''' hmmm my girl offers me something I can't ignore..... [15:17] '''&lt;@Captnoord&gt;''' crap... [15:17] '''&lt;@Captnoord&gt;''' :P [15:17] '''&lt;@AknorJaden_&gt;''' dude, what are you waiting for ....GO [15:19] '''&lt;@Luck&gt;''' lol [15:19] '''&lt;@Luck&gt;''' gtfo of here man [15:19] '''&lt;@AknorJaden_&gt;''' so, luck, when i am in the LSCService, i need to go look at the xmlp files (or more appropriately, the .h files) to find out what stuff is in the decoded args object? [15:19] '''&lt;@Luck&gt;''' that's one way yes [15:20] '''&lt;@AknorJaden_&gt;''' ok, is there an easier way? [15:20] '''&lt;@Luck&gt;''' start typing args. [15:20] '''&lt;@Luck&gt;''' and see what intellisense tells you is available [15:20] '''&lt;@Luck&gt;''' :) [15:20] '''&lt;@Luck&gt;''' not always accurate though [15:20] '''&lt;@AknorJaden_&gt;''' where, in the function i'm in? [15:20] '''&lt;@Luck&gt;''' yea [15:21] '''&lt;@Luck&gt;''' your better off looking at the Decode() function for that particular call though [15:21] '''&lt;@Luck&gt;''' oh [15:21] '''&lt;@Luck&gt;''' if anyone is interested, new commit to the exp branch [15:21] '''&lt;@AknorJaden_&gt;''' ok, thanks for the tip. but am i right about going to the .h files under eve-common\include\packets for the source? [15:21] '''&lt;@Luck&gt;''' no.. [15:21] '''&lt;@Luck&gt;''' go to the .cpp files [15:22] '''&lt;@Luck&gt;''' well i guess you could go to the .h files [15:22] '''&lt;@AknorJaden_&gt;''' so, eve-common\src\packets ? [15:22] '''&lt;@Luck&gt;''' i guess [15:22] '''&lt;@Luck&gt;''' i look at it in VS [15:22] '''&lt;@Luck&gt;''' structure is slightly different [15:22] '''&lt;@Luck&gt;''' wait [15:23] '''&lt;@AknorJaden_&gt;''' yeah, that's what i meant. i look at the .h and .cpp files in VS [15:23] '''&lt;@Luck&gt;''' nvm [15:23] '''&lt;@Luck&gt;''' kk [15:23] '''&lt;@Luck&gt;''' yea [15:23] '''&lt;@Luck&gt;''' eve-common/src/packets [15:23] '''&lt;@Luck&gt;''' the ability to ban accounts from the server has been added [15:23] '''&lt;@Luck&gt;''' exp branch rev 975 [15:23] '''&lt;@Luck&gt;''' *974 [15:25] '''&lt;@AknorJaden_&gt;''' cool, i can ban myself from my own solo server LOL [15:25] '''&lt;@Luck&gt;''' lol [15:25] '''&lt;@Luck&gt;''' careful [15:25] '''&lt;@Luck&gt;''' it will kick you [15:25] '''&lt;@AknorJaden_&gt;''' well duh! [15:25] '''&lt;@Luck&gt;''' and you won't be able to log back into unban yourself [15:25] '''&lt;@Luck&gt;''' so you'll have to edit your db [15:25] '''&lt;@AknorJaden_&gt;''' ah, but i can use phpmyadmin! [15:25] '''&lt;@Luck&gt;''' fair enough [15:25] '''&lt;@AknorJaden_&gt;''' hehe [15:26] '''&lt;@Luck&gt;''' you should read the announcement on the forums about it [15:26] '''&lt;@AknorJaden_&gt;''' oh, hey that reminds me...eve-server isn't coded to take advantage of multi-core processors is it? [15:27] '''&lt;@AknorJaden_&gt;''' brb [15:29] '''&lt;@Luck&gt;''' umm not really [15:33] '''&lt;@Luck&gt;''' k guys, i g2g deal with some rl shit [15:33] '''&lt;@Luck&gt;''' i'll ttyl [15:33] *** Luck has quit IRC: [MF] Quit: Leaving [15:34] '''&lt;@AknorJaden_&gt;''' or for that matter, eve-server definitely doesn't run on a server farm either, eh? ----- # client sends packet to server # packet received by TCP section # received packets are sent to PyDispatcher # PyDispatcher looks at packet info to figure out what service to call ## the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function </div> ab739c7edbe18fff43d4a4ce0d5d01a79b47945e Old Wiki:Eve-tool 0 83 108 2021-04-03T14:23:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> To compile Eve-Tool, you must select it in the Cmake options. EVE Tool is essentially just a collection of small functions to do various things with EVE specific data, with a little command line interface. The source code for this tool is included with evemu. Current Features: * Um-marshalling MarshalStreams? found in CCP's logserver.exe logs of '''Write''' and '''Read''' packets * Cache file listing and extracting * BLUE file extracting * Win32 64 bit time functions </div> f28c615eac199744b39efd043fd0f3ad8656cc7e Old Wiki:Eve-xmlpktgen 0 84 109 2021-04-03T14:23:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Description|<span class="tocnumber">1</span> <span class="toctext">'''Description'''</span>]] * [[#Current_usage|<span class="tocnumber">2</span> <span class="toctext">'''Current usage'''</span>]] * [[#Example_on_a_real_packet|<span class="tocnumber">3</span> <span class="toctext">Example on a real packet</span>]] * [[#XMLP_Format_Demystified|<span class="tocnumber">4</span> <span class="toctext">XMLP Format Demystified</span>]] ** [[#Tags_and_their_uses|<span class="tocnumber">4.1</span> <span class="toctext">Tags and their uses</span>]] |} == <span id="Description" class="mw-headline"> '''Description''' </span> == XML Packet Generator, abbreviated ''xmlpktgen'', is a tool specifically designed to solve one of the problems with Python interaction: its dynamic typing. Using marshaling and unmarshaling, we are able to reproduce any object that a client sends to us; however, there is nothing we can say about these objects at compile time: are these ints? floats? tuples? Thus the objects passed to calls as arguments (for example) must always be examined and their types must be determined in order to be effectively used in C++. We could do this manually; however, it's soon clear that it's nothing but endless code repetition. So we use the xmlpktgen: if we feed it with proper XML destribing the object(s) we wish to decode, it generates .h/.cpp files with classes that do exactly what we need - scan through given object and pull out stuff we need (ints, strings etc.), according to the given XML description. These classes can also handle inverse operation: given the components, they can construct quite complex objects out of them. <br /> == <span id="Current_usage" class="mw-headline"> '''Current usage''' </span> == In the current setup, its headers are in include/xmlpktgen, source is in src/xmlpktgen. After it's built, it's used to generate .h/.cpp files for .xmlp descriptors in src/eve-common/packets. These generated classes are then used throughout the whole eve-common, eve-tool and eve-server source. == <span id="Example_on_a_real_packet" class="mw-headline"> Example on a real packet </span> == The packet is to big to be pasted here so you can access it here: [http://www.levelbelow.net/pastebin/1372/ Packet Example] Let's take this complicated packet as an example on how to create the xmlp code in these situations. First, we look at what we have as a general structure. You start by looking under the [PySubstream] line. There we have a PyString called &quot;CreateCharacterWithDoll&quot; - this is the method that has been called from the client to the server. The client sends information about your character creation results (name, race, gender, bloodline, avatar appearance, picture pose information and schoolID). Under the PyString &quot;CreateCharacterWithDoll&quot; there is a tuple containing 7 items. If you take a close look you can see that the first item it's a string that contains the name of the created character and the rest of the PyInts and PyObjects are the data specified above. The firs thing you want to do is to add a &lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt;, this will define a class named CallCreateCharacterWithDoll that you can later use inside the C++ code. Then you take the first thing under the PySubstream, which is a &lt;tupleInline&gt; and under this you add the elements one by one like this: <span class="tex2jax_ignore"><code> </code></span> <pre>&lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt; &lt;tupleInline&gt; &lt;wstring name = &quot;name&quot; /&gt; &lt;int name = &quot;bloodlineID&quot; /&gt; &lt;int name = &quot;ancestryID&quot; /&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;avatarInfo&quot; /&gt; &lt;/objectInline&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;poseInfo&quot; /&gt; &lt;/objectInline&gt; &lt;int name = &quot;schoolID&quot; /&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; </pre> The name after each type (wstring, int, list) specifies the name of the property that will be generated inside the class CallCreateaCharacterWithDoll, it's like saying &quot;int number&quot; in ordinary C++. First 3 lines were pretty straight forward, a string and 2 ints, but what about the fourth one? Well... here is the tricky part... This is an object which consists of a string and a dict; the string &quot;util.KeyVal&quot; describes the dict format which is: &quot;Key Val&quot; (ex: &quot;gold&quot;:99999) a key, named &quot;gold&quot; for example and it's value 99999 which can be an int, float, list or any object. I've chosen this packet because of it's complexity from which you can learn how to deal with types other than the basic int, float, string. Coming soon: The continuation of the the process on how we go about extracting the data and store it in the Data Base. == <span id="XMLP_Format_Demystified" class="mw-headline"> XMLP Format Demystified </span> == XMLP Structure Using it on the C++ side: <pre>&lt;objectInline&gt; &lt;stringInline value=&quot;util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;int name=&quot;itemID&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;attributes&quot;&gt; &lt;dictInt name=&quot;attributes&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;invItem&quot;&gt; &lt;raw name=&quot;invItem&quot; /&gt; obj.invItem = new PyPackedRow(...) &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;time&quot;&gt; &lt;/dictInlineEntry&gt; &lt;int name=&quot;time&quot; /&gt; &lt;dictInlineEntry key=&quot;activeEffects&quot;&gt; &lt;dictInt name=&quot;activeEffects&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> example for including an entire xmlp structure into another: <pre>&lt;objectInline&gt; &lt;stringInline value=util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> <br /> === <span id="Tags_and_their_uses" class="mw-headline"> Tags and their uses </span> === A full list of xmlp tags can be found in Generator.h/.cpp in the &quot;xmlpktgen&quot; project. Use &lt;&gt; not [] wiki formating is evil. '''[elementDef] [/elementDef]''' the outermost wrapper tag around an entire XMLP structure, close with '''[element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /]''' you supply the actual object (not just a pointer) to the util_Rowset '''[elementPtr type=&quot;OnLSC_SenderInfo&quot; name=&quot;sender&quot; /]''' you supply a pointer to the OnLSC_SenderInfo class object instance '''[raw name=&quot;raw_name&quot; /]''' you put a new PyRep * object here, which can be any PyXXXX class pointer '''[objectEx name=&quot;name&quot; type=&quot;a type&quot; optional=&quot;true/false&quot;] [/objectEx]''' specifies a PyObjectEx object, Type it's like util.KeyVal object type and can be left out, Optional asks if it's type 2 or not '''[objectInline]''' specifies a PyObject object, closed by [/objectInline] '''[substreamInline] marshalling/unmarshalling [/substreamInline]''' specifies a PySubStream object - this is used by lower level '''[none /]''' specifies a PyNone object '''[dictInline] [/dictInline]''' wrap a dictionary in this and its closing tag '''[dictInlineEntry key=&quot;dict_key_string&quot;]''' this defines an expected dictionary key value as a string &quot;dict_key_string&quot;, used inside [dictinline] you then need to specify on the next line a value part of this dictionary key-value pair eg: <pre>&lt;dictInlineEntry key=&quot;key_string&quot;&gt; &lt;int name=&quot;int_name&quot; /&gt; &lt;/dictInlineEntry&gt;</pre> '''[dict name=&quot;dict_name&quot; /]''' defines a whole dictionary object of type PyDict '''[dictInt name=&quot;dict_int_name&quot; /]''' defines a whole dictionary with integers used for ALL key values '''[dictStr name=&quot;dict_string_name&quot; /]''' defines a whole dictionary with strings used for ALL key values '''[dictRaw name=&quot;dict_raw_name&quot; key=&quot;key_Ctype&quot; pykey=&quot;key_Ptype&quot; value=&quot;val_Ctype&quot; pyvalue=&quot;val_Ptype&quot; /]''' defines a whole dictionary with &quot;key_Ctype&quot; of a C/C++ type such as uint32 as keys, with the Python type specified type specified by &quot;key_Ptype&quot;, the value C/C++ type specified by &quot;val_Ctype&quot;, and the Python type specified by &quot;val_Ptype&quot; '''[stringInline value=&quot;string_value&quot; /]''' specifies a constant PyString value that contains the string &quot;string_value&quot; '''[tokenInline]''' specifies a PyToken '''[tupleInline]''' wrap a tuple (list of items) in this and its closing tag &lt;/tupleInline&gt; '''[tuple name=&quot;tuple_name&quot; /]''' specifies a tuple object of type PyTuple '''[listInline]''' wrap a list (list of items) in this and its closing tag &lt;/listInline&gt; ['''list name=&quot;list_name&quot; /]''' specifies a list of objects with the name &quot;list_name&quot; '''[listInt name=&quot;list_int_name&quot; /]''' specifies a list of PyInt objects with the name &quot;list_int_name&quot; '''[listStr name=&quot;list_string_name&quot; /]''' specifies a list of PyString objects with the name &quot;list_string_name&quot;; no explicit '''[string name=&quot;string_name&quot; /]''' simple object type PyString with the name &quot;string_name&quot; '''[wstring name=&quot;wstring_name&quot; /]''' simple object type PyWString with the name &quot;wstring_name&quot; '''[real name=&quot;real_name&quot; /]''' simple object type PyFloat with the name &quot;real_name&quot; '''[int name=&quot;int_name&quot; /]''' simple object type PyInt with the name &quot;int_name&quot; '''[long name=&quot;long_name&quot; /]''' simple object type PyLong with the name &quot;long_name&quot; '''[bool name=&quot;bool_name&quot; /]''' simple object type PyBool with the name &quot;bool_name&quot; </div> f1dd3ec7fae5c52c3afb61f774ceb022c1c87c29 Old Wiki:File AknorJaden 0 85 110 2021-04-03T14:24:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> * [[#file|File]] * [[#filehistory|File history]] * [[#filelinks|File usage]] <div id="file" class="fullImageLink"> [[../images/5/57/AknorJaden.jpg|[[File:../images/5/57/AknorJaden.jpg|512x512px|File:AknorJaden.jpg]]]] <div class="mw-filepage-resolutioninfo"> No higher resolution available. </div> </div> <div class="fullMedia"> [[../images/5/57/AknorJaden.jpg|AknorJaden.jpg]]‎ <span class="fileInfo">(512 × 512 pixels, file size: 70 KB, MIME type: image/jpeg)</span> </div> <div id="mw-imagepage-content" class="mw-content-ltr" lang="en" dir="ltr"> </div> == File history == <div id="mw-imagepage-section-filehistory"> Click on a date/time to view the file as it appeared at that time. {| | | Date/Time | Thumbnail | Dimensions | User | Comment |- | current | [[../images/5/57/AknorJaden.jpg|04:08, 16 September 2014]] | [[../images/5/57/AknorJaden.jpg|[[File:../images/thumb/5/57/AknorJaden.jpg/120px-AknorJaden.jpg|120x120px|Thumbnail for version as of 04:08, 16 September 2014]]]] | 512 × 512 <span style="white-space: nowrap;">(70 KB)</span> | [[User_Aknor_Jaden.html|Aknor Jaden]] <span style="white-space: nowrap;"> <span class="mw-usertoollinks">([http://wiki.evemu.dev/index.php?title=User_talk:Aknor_Jaden&action=edit&redlink=1 Talk] | [[Special_Contributions/Aknor_Jaden.html|contribs]])</span></span> | |} </div> <br /> * <span id="mw-imagepage-edit-external">[http://wiki.evemu.dev/index.php?title=File:AknorJaden.jpg&action=edit&externaledit=true&mode=file Edit this file using an external application] <span class="small">(See the [http://www.mediawiki.org/wiki/Manual:External_editors setup instructions] for more information)</span></span> == File usage == <div id="mw-imagepage-section-linkstoimage"> The following page links to this file: * <span id="mw-imagepage-linkstoimage-ns2">[[User_Aknor_Jaden.html|User:Aknor Jaden]]</span> </div> </div> 3b102136e4dd5198b16341f7c0b14d4d6ded457c Old Wiki:File Dbo 001 0 86 111 2021-04-03T14:24:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> * [[#file|File]] * [[#filehistory|File history]] * [[#filelinks|File usage]] * [[#metadata|Metadata]] <div id="file" class="fullImageLink"> [[../images/7/72/Dbo_001.png|[[File:../images/7/72/Dbo_001.png|600x487px|File:Dbo 001.png]]]] <div class="mw-filepage-resolutioninfo"> No higher resolution available. </div> </div> <div class="fullMedia"> [[../images/7/72/Dbo_001.png|Dbo_001.png]]‎ <span class="fileInfo">(600 × 487 pixels, file size: 23 KB, MIME type: image/png)</span> </div> <div id="mw-imagepage-content" class="mw-content-ltr" lang="en" dir="ltr"> A small png file showing the relations between table fields in the database </div> == File history == <div id="mw-imagepage-section-filehistory"> Click on a date/time to view the file as it appeared at that time. {| | | Date/Time | Thumbnail | Dimensions | User | Comment |- | current | [[../images/7/72/Dbo_001.png|00:37, 18 September 2014]] | [[../images/7/72/Dbo_001.png|[[File:../images/thumb/7/72/Dbo_001.png/120px-Dbo_001.png|120x97px|Thumbnail for version as of 00:37, 18 September 2014]]]] | 600 × 487 <span style="white-space: nowrap;">(23 KB)</span> | [http://wiki.evemu.dev/index.php?title=User:Deslona&action=edit&redlink=1 Deslona] <span style="white-space: nowrap;"> <span class="mw-usertoollinks">([http://wiki.evemu.dev/index.php?title=User_talk:Deslona&action=edit&redlink=1 Talk] | [[Special_Contributions/Deslona.html|contribs]])</span></span> | A small png file showing the relations between table fields in the database |} </div> <br /> * <span id="mw-imagepage-edit-external">[http://wiki.evemu.dev/index.php?title=File:Dbo_001.png&action=edit&externaledit=true&mode=file Edit this file using an external application] <span class="small">(See the [http://www.mediawiki.org/wiki/Manual:External_editors setup instructions] for more information)</span></span> == File usage == <div id="mw-imagepage-section-linkstoimage"> The following page links to this file: * <span id="mw-imagepage-linkstoimage-ns14">[[Category_EVE_Database.html|Category:EVE Database]]</span> </div> == Metadata == <div class="mw-imagepage-section-metadata"> This file contains additional information, probably added from the digital camera or scanner used to create or digitize it. If the file has been modified from its original state, some details may not fully reflect the modified file. {| |width="50%"| Software used |width="50%"| * <span class="mw-metadata-lang-value">Adobe ImageReady</span> |} </div> </div> 4fdbe6235afb16f85c8fd009f2271de8d26637a2 Old Wiki:File Dbo 002 0 87 112 2021-04-03T14:24:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> * [[#file|File]] * [[#filehistory|File history]] * [[#filelinks|File usage]] <div id="file" class="fullImageLink"> [http://wiki.evemu.dev/images/1/1c/Dbo_002.pdf [[File:../skins/common/images/icons/fileicon-pdf.png|120x120px]]] </div> <div class="fullMedia"> [http://wiki.evemu.dev/images/1/1c/Dbo_002.pdf Dbo_002.pdf]‎ <span class="fileInfo">(file size: 402 KB, MIME type: application/pdf)</span> </div> <div id="mw-imagepage-content" class="mw-content-ltr" lang="en" dir="ltr"> A .pdf file showing the relations between table fields in the database </div> == File history == <div id="mw-imagepage-section-filehistory"> Click on a date/time to view the file as it appeared at that time. {| | | Date/Time | Dimensions | User | Comment |- | current | [http://wiki.evemu.dev/images/1/1c/Dbo_002.pdf 00:21, 18 September 2014] | <span style="white-space: nowrap;">(402 KB)</span> | [http://wiki.evemu.dev/index.php?title=User:Deslona&action=edit&redlink=1 Deslona] <span style="white-space: nowrap;"> <span class="mw-usertoollinks">([http://wiki.evemu.dev/index.php?title=User_talk:Deslona&action=edit&redlink=1 Talk] | [[Special_Contributions/Deslona.html|contribs]])</span></span> | A .pdf file showing the relations between table fields in the database |} </div> <br /> * <span id="mw-imagepage-edit-external">[http://wiki.evemu.dev/index.php?title=File:Dbo_002.pdf&action=edit&externaledit=true&mode=file Edit this file using an external application] <span class="small">(See the [http://www.mediawiki.org/wiki/Manual:External_editors setup instructions] for more information)</span></span> == File usage == <div id="mw-imagepage-section-linkstoimage"> The following page links to this file: * <span id="mw-imagepage-linkstoimage-ns14">[[Category_EVE_Database.html|Category:EVE Database]]</span> </div> </div> 07876b2afca50d919a43f73e011b90e5fc8f7c9d Old Wiki:File Evemu banner erebus vs leviathan 0 88 113 2021-04-03T14:24:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> * [[#file|File]] * [[#filehistory|File history]] * [[#filelinks|File usage]] <div id="file" class="fullImageLink"> [[../images/b/bf/Evemu_banner_erebus_vs_leviathan.png|[[File:../images/thumb/b/bf/Evemu_banner_erebus_vs_leviathan.png/800px-Evemu_banner_erebus_vs_leviathan.png|800x290px|File:Evemu banner erebus vs leviathan.png]]]] <div class="mw-filepage-resolutioninfo"> Size of this preview: [[../images/thumb/b/bf/Evemu_banner_erebus_vs_leviathan.png/800px-Evemu_banner_erebus_vs_leviathan.png|800 × 290 pixels]]. </div> </div> <div class="fullMedia"> [[../images/b/bf/Evemu_banner_erebus_vs_leviathan.png|Full resolution]]‎ <span class="fileInfo">(1,277 × 463 pixels, file size: 1.13 MB, MIME type: image/png)</span> </div> <div id="mw-imagepage-content" class="mw-content-ltr" lang="en" dir="ltr"> </div> == File history == <div id="mw-imagepage-section-filehistory"> Click on a date/time to view the file as it appeared at that time. {| | | Date/Time | Thumbnail | Dimensions | User | Comment |- | current | [[../images/b/bf/Evemu_banner_erebus_vs_leviathan.png|02:27, 22 August 2012]] | [[../images/b/bf/Evemu_banner_erebus_vs_leviathan.png|[[File:../images/thumb/b/bf/Evemu_banner_erebus_vs_leviathan.png/120px-Evemu_banner_erebus_vs_leviathan.png|120x44px|Thumbnail for version as of 02:27, 22 August 2012]]]] | 1,277 × 463 <span style="white-space: nowrap;">(1.13 MB)</span> | [[User_Aknor_Jaden.html|Aknor Jaden]] <span style="white-space: nowrap;"> <span class="mw-usertoollinks">([http://wiki.evemu.dev/index.php?title=User_talk:Aknor_Jaden&action=edit&redlink=1 Talk] | [[Special_Contributions/Aknor_Jaden.html|contribs]])</span></span> | |} </div> <br /> * <span id="mw-imagepage-edit-external">[http://wiki.evemu.dev/index.php?title=File:Evemu_banner_erebus_vs_leviathan.png&action=edit&externaledit=true&mode=file Edit this file using an external application] <span class="small">(See the [http://www.mediawiki.org/wiki/Manual:External_editors setup instructions] for more information)</span></span> == File usage == <div id="mw-imagepage-section-linkstoimage"> The following page links to this file: * <span id="mw-imagepage-linkstoimage-ns0">[[Main_Page.html|Main Page]]</span> </div> </div> 6d398645960fe7a3c934308627c61a4da5edfff6 Old Wiki:File Evemulogo 0 89 114 2021-04-03T14:24:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> * [[#file|File]] * [[#filehistory|File history]] * [[#filelinks|File usage]] * [[#metadata|Metadata]] <div id="file" class="fullImageLink"> [[../images/0/0b/Evemulogo.png|[[File:../images/0/0b/Evemulogo.png|450x150px|File:Evemulogo.png]]]] <div class="mw-filepage-resolutioninfo"> No higher resolution available. </div> </div> <div class="fullMedia"> [[../images/0/0b/Evemulogo.png|Evemulogo.png]]‎ <span class="fileInfo">(450 × 150 pixels, file size: 16 KB, MIME type: image/png)</span> </div> <div id="mw-imagepage-content" class="mw-content-ltr" lang="en" dir="ltr"> </div> == File history == <div id="mw-imagepage-section-filehistory"> Click on a date/time to view the file as it appeared at that time. {| | | Date/Time | Thumbnail | Dimensions | User | Comment |- | current | [[../images/0/0b/Evemulogo.png|18:50, 29 July 2012]] | [[../images/0/0b/Evemulogo.png|[[File:../images/thumb/0/0b/Evemulogo.png/120px-Evemulogo.png|120x40px|Thumbnail for version as of 18:50, 29 July 2012]]]] | 450 × 150 <span style="white-space: nowrap;">(16 KB)</span> | [[User_Aknor_Jaden.html|Aknor Jaden]] <span style="white-space: nowrap;"> <span class="mw-usertoollinks">([http://wiki.evemu.dev/index.php?title=User_talk:Aknor_Jaden&action=edit&redlink=1 Talk] | [[Special_Contributions/Aknor_Jaden.html|contribs]])</span></span> | |} </div> <br /> * <span id="mw-imagepage-edit-external">[http://wiki.evemu.dev/index.php?title=File:Evemulogo.png&action=edit&externaledit=true&mode=file Edit this file using an external application] <span class="small">(See the [http://www.mediawiki.org/wiki/Manual:External_editors setup instructions] for more information)</span></span> == File usage == <div id="mw-imagepage-section-linkstoimage"> The following page links to this file: * <span id="mw-imagepage-linkstoimage-ns0">[[Main_Page.html|Main Page]]</span> </div> == Metadata == <div class="mw-imagepage-section-metadata"> This file contains additional information, probably added from the digital camera or scanner used to create or digitize it. If the file has been modified from its original state, some details may not fully reflect the modified file. {| | Horizontal resolution | 28.35 dpc |- | Vertical resolution | 28.35 dpc |} </div> </div> a778a71a295cb0a03b90dcadf436edf1980138d7 Old Wiki:Forums 0 90 115 2021-04-03T14:24:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Forums|<span class="tocnumber">1</span> <span class="toctext">Forums</span>]] * [[#Teamspeak|<span class="tocnumber">2</span> <span class="toctext">Teamspeak</span>]] * [[#IRC_EVEmu|<span class="tocnumber">3</span> <span class="toctext">IRC EVEmu</span>]] ** [[#Finding_an_IRC_Client|<span class="tocnumber">3.1</span> <span class="toctext">Finding an IRC Client</span>]] ** [[#Downloading_and_installing|<span class="tocnumber">3.2</span> <span class="toctext">Downloading and installing</span>]] *** [[#Additional_info|<span class="tocnumber">3.2.1</span> <span class="toctext">Additional info</span>]] ** [[#Connecting_to_the_server|<span class="tocnumber">3.3</span> <span class="toctext">Connecting to the server</span>]] *** [[#Initial_Setting_Up|<span class="tocnumber">3.3.1</span> <span class="toctext">Initial Setting Up</span>]] *** [[#Common_Connect_routine|<span class="tocnumber">3.3.2</span> <span class="toctext">Common Connect routine</span>]] ** [[#Joining_the_channel|<span class="tocnumber">3.4</span> <span class="toctext">Joining the channel</span>]] ** [[#Closing_Notes|<span class="tocnumber">3.5</span> <span class="toctext">Closing Notes</span>]] |} = <span id="Forums" class="mw-headline"> Forums </span> = [http://forums.evemu.org/ EVEmu Forums] = <span id="Teamspeak" class="mw-headline"> Teamspeak </span> = Code_Red has been kind enough to keep a multi-channel Teamspeak server running for our use whenever we want to talk to each other during development, testing, or just shooting the breeze. Here are the connection details: * [http://www.teamspeak.com/ Teamspeak 3.x] * server address: '''evemu-serv.servehttp.com''' * port: '''9989''' <br /> * PS - please do not bug the other inhabitants on the other ports, thanks in advance. - Code_Red = <span id="IRC_EVEmu" class="mw-headline"> IRC EVEmu </span> = == <span id="Finding_an_IRC_Client" class="mw-headline"> Finding an IRC Client </span> == You can select a client of preference from this list [http://en.wikipedia.org/wiki/Comparison_of_IRC_clients IRC Client Comparison]. Also you can use web based IRC clients like [http://chat.mibbit.com/ mibbit] For this tutorial we are gonna be using [http://www.smuxi.org/ Smuxi] for its cross platform availability. Here are some IRC client favorites of some of our more active people: * [http://www.icechat.net/site/ IceChat] - Aknor (he likes v7 over v9 though ;) * [http://wiki.znc.in/ZNC ZNC] - ozatomic * [http://www.kvirc.net/ KVirc] - various * [http://xchat.org/ xchat] - various * [http://www.mirc.com/ mIRC] - various folks like this, but it's not free :( == <span id="Downloading_and_installing" class="mw-headline"> Downloading and installing </span> == The downloading and installation process are explained in detailed in [http://www.smuxi.org/page/Download Smuxis download page]. === <span id="Additional_info" class="mw-headline"> Additional info </span> === If whatever client prompts you for installing additional software its advised to only keep the vital parts of the client, as it might install unwanted advertising software. == <span id="Connecting_to_the_server" class="mw-headline"> Connecting to the server </span> == === <span id="Initial_Setting_Up" class="mw-headline"> Initial Setting Up </span> === You are only required to follow the following steps on first run. At the first execution of the client, you should click on File-&gt;Preferences at the top left corner of the window. From there you should only add your nickname on the nickname(s) field. After you are done setting a nickname, click on servers. Click Add. In the new window the only thing you should change is the Hostname field. Insert one from the list below: <br /> * gork.levelbelow.net (Master - Works) * bork.levelbelow.net (Works) * aussie.levelbelow.net (Works) * irc.evemu.net (Will point to all 3 servers) * irc.evemu.com (Will point to all 3 servers) <br /> Former servers (now defunct) * irc.evemu.org * irc.evemu.info * evemu.levelbelow.net <br /> Select OK twice. === <span id="Common_Connect_routine" class="mw-headline"> Common Connect routine </span> === The following steps are gonna be done each time you wish to connect. Click Server-&gt;Quick Connect. On the left, click the network address you entered and select Connect. You are now connected to the server == <span id="Joining_the_channel" class="mw-headline"> Joining the channel </span> == If you have successfully joined the server, you should head for the editbox and type, depending on your goal one of the following: '''/join #evemu''' (Preferred most people are on here. If you have a question say hi '''and''' ask, some people will help you as soon as they see the message.) '''/join #evemu-support''' == <span id="Closing_Notes" class="mw-headline"> Closing Notes </span> == If you successfully have a new tab named evemu, congratulations, you have just connected to the community IRC channel where you can talk live with everyone. If however you failed at some point you should head to the [wiki:FAQ] and look for a possible solution or you can always Google It </div> 87d2d420b3980a39090e9a2d140b20698809a71e Old Wiki:General disclaimer 0 91 116 2021-04-03T14:25:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> EVEmu is an educational project. This means, our primary interest is to learn and teach us and our users more about C++ project development in a large scale. Our software is not intended for running public servers, and we do not support that. We are not responsible for what others do with the source code downloaded from this project. All the information on this website is published in good faith and for general information purpose only. [http://wiki.evemu.dev/ http://wiki.evemu.dev] does not make any warranties about the completeness, reliability and accuracy of this information. Any action you take upon the information you find on this website ([http://wiki.evemu.dev/ http://wiki.evemu.dev]), is strictly at your own risk. [http://wiki.evemu.dev/ http://wiki.evemu.dev] will not be liable for any losses and/or damages in connection with the use of our website. From our website, you can visit other websites by following hyperlinks to such external sites. While we strive to provide only quality links to useful and ethical websites, we have no control over the content and nature of these sites. These links to other websites do not imply a recommendation for all the content found on these sites. Site owners and content may change without notice and may occur before we have the opportunity to remove a link which may have gone 'bad'. Please be also aware that when you leave our website, other sites may have different privacy policies and terms which are beyond our control. Please be sure to check the Privacy Policies of these sites as well as their &quot;Terms of Service&quot; before engaging in any business or uploading any information. If you find illegal or copyrighted content please let us know about it over IRC or the Forum. </div> e512648aae368cff76e60c1f922ad41b3ee96e65 Main Page 0 2 117 6 2021-04-03T14:25:15Z Admin 1 wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''[[:Category:Crucible|Crucible]] 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|IRC]] conversations and [[EVEmu Connect#Teamspeak|Teamspeak]] conversations, then [[Getting Started|get started learning the server codebase]] while you learn C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via IRC, Teamspeak, Forums]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} {{Legal}} 11f558e0247cc85271cecfa3f36ffcc03f0d8323 Old Wiki:Getting Started 0 92 118 2021-04-03T14:25:17Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / '''Getting Started''' (you are here) |} <br /> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Getting_Started|<span class="tocnumber">1</span> <span class="toctext">'''Getting Started'''</span>]] * [[#Learn_about_the_EVEmu_Codebase|<span class="tocnumber">2</span> <span class="toctext">'''Learn about the EVEmu Codebase'''</span>]] * [[#Server_development|<span class="tocnumber">3</span> <span class="toctext">'''Server development'''</span>]] * [[#Installer_Development|<span class="tocnumber">4</span> <span class="toctext">'''Installer Development'''</span>]] * [[#Database_information|<span class="tocnumber">5</span> <span class="toctext">'''Database information'''</span>]] * [[#Live_information|<span class="tocnumber">6</span> <span class="toctext">'''Live information'''</span>]] |} <br /> == <span id="Getting_Started" class="mw-headline"> '''Getting Started''' </span> == This page is for people who want to develop evemu, if you want to install evemu on your system, please go [[Category_Crucible.html|here]]. '''Testing:''' * Learn more about [[Category_Testing_EVEmu.html|Testing EVEmu]] * [[Eve-tool.html|Eve-tool]] '''Writing Code:''' * You need to know C/C++ to write code for EVEmu. Learn C/C++ at these locations ** [http://www.cplusplus.com/ CPlusPlus.com] ** [http://www.cprogramming.com/begin.html CProgramming.com] ** [http://www.learncpp.com/ LearnCPP.com] * Source [[Development_Practices.html|Development Practices]] guide - check this out to see how we like contributing developers to format their code * How to create and use packets in EVEmu - Check this if you don't know how them work '''Packet formating''' * EveMu [[XML_Packet_Generator.html|xmlpktgen]] - How to format packets in XMLP and general information about xmlpktgen. == <span id="Learn_about_the_EVEmu_Codebase" class="mw-headline"> '''Learn about the EVEmu Codebase''' </span> == * The [[Category_The_EVEmu_Guide.html|The EVEmu Guide]] - go here to learn about the EVEmu code base and how it's structured * The [[Category_EVE_Database.html|The EVEmu Database Guide]] - go here to learn about how EVEmu uses and manages the back end MySQL database * The [[Category_The_EVEmu_Database_Guide.html|The EVEmu Database Guide (old)]] - not sure what was supposed to be here, you should really just use the link above == <span id="Server_development" class="mw-headline"> '''Server development''' </span> == * [[EVEmu_PROJECT_PLAN.html|EVEmu PROJECT PLAN]] / Developers WIP Board - CONTAINS SHORT TERM/LONG TERM PROJECT PLAN - also has the list of active developers and what they are currently working on * EVEmu Project Tracking - this is the list of game features and their operational status in the most recent server builds * TODO Check List * Changelog * EVEmu Special Features - those really awesome cool things you wished you could do in EVE Live! == <span id="Installer_Development" class="mw-headline"> '''Installer Development''' </span> == * EveMu Installer == <span id="Database_information" class="mw-headline"> '''Database information''' </span> == * Dumps distributed with EVEmu * Decoding the EVEmu MySQL Tables * Database Tools - information on tools used with the EVEmu database: [[EVEmu_Control_Panel.html|EVEmu Control Panel]] == <span id="Live_information" class="mw-headline"> '''Live information''' </span> == * [[Jennifer.html|Jennifer]] * [[EVE_File_Formats.html|EVE File Formats]] * [[Live_EVE_Architecture.html|Live EVE Architecture]] * [[EVEmu_Architecture.html|EVEmu Architecture]] * [[EVE_Protocol.html|EVE Protocol]] * &quot;[[Destiny.html|Destiny]]&quot; Information * [[Service_Descriptions.html|Service Descriptions]] * [[Contract_System.html|Contract System]] * CCP Table Info * CCP Patch Server Info * How to capture and compare packets * Any info on Eve Live that you cant find a place for. </div> 5a05ced010b287ff817ae63c0d6ad9c83c80e3fa Old Wiki:Guristas 0 93 119 2021-04-03T14:25:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> This page is dedicated to the development of the Guristas pirates. Relating to spawns and loot. Guristas Drops {| ! Lootname ! typeID |- | 75mm 'Scout' Accelerator Cannon | 7249 |- | 75mm Carbide Railgun I | 7251 |- | 75mm Compressed Coil Gun I | 7253 |- | 75mm Gatling Rail I | 561 |- | 75mm Prototype Gauss Gun | 7247 |} Basic list (keep in consideration metatypes) Guristas (Tech 1, Named and Faction - Dread Guristas) - Crystal Implants 75mm Railgun - would be expanded to 75mm 'Scout' Accelerator Cannon 7249 75mm Carbide Railgun I 7251 75mm Compressed Coil Gun I 7253 75mm Gatling Rail I 561 75mm Prototype Gauss Gun 7247 75mm Gatling Rail II 3098 &lt;- wouldn't be added to the table 125mm Railgun 150mm Railgun 200mm Railgun 250mm Railgun 350mm Railgun 425mm Railgun Antimatter charge L, M, S Assault Missile Launcher Ballistic Control System Ballistic Deflection Field Bane Torpedo Bloodclaw Light Missile Cataclysm Cruise Missile Cloaking Device Co-Processor Cruise Missile Launcher Devastator Cruise Missile Launcher Dual 150mm Railgun Dual 250mm Railgun ECM Multispectral Jammer Explosion Dampening Amplifier Explosion Dampening Field Flameburst Light Missile Foxfire Rocket Fulmination Assault Missile Gremlin Rocket Havoc Heavy Missile Heat Dissipation Amplifier Heat Dissipation Field Heavy Assault Missile Launcher Heavy Missile Launcher Hellfire Assault Missile Inferno Torpedo Invulnerability Field Iridium Charge L, M, S Iron Charge L, M, S Juggernaut Torpedo Kinetic Deflection Amplifier Large Graviton Smartbomb (Kin) Large Shield Booster Lead Charge L, M, S Magnetic Scattering Amplifier Medium Graviton Smartbomb Medium Shield Booster Mjolnir Torpedo Paradise Cruise Missile Phalanx Rocket Photon Scattering Field Piranha Light Missile Plutonium Charge (L, M, S) Rocket Launcher Sabretooth Light Missile Scourge Heavy Missile Shield Boost Amplifier Siege Missile Launcher Small Graviton Smartbomb Small Shield Booster Standard Missile Launcher Stasis Webifier Terror Assault Missile Thorium Charge L, M, S Thorn Rocket Thunderbolt Heavy Missile Torrent Assault Missile Tungsten Charge L, M, S Uranium Charge L, M, S Warp Disruptor Warp Scrambler Widowmaker Heavy Missile Wrath Cruise Missile X-Large Shield Booster </div> 3a5696d59518e51c452a83d7566986267b55ad65 Old Wiki:Help Contents 0 94 120 2021-04-03T14:25:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="noarticletext"> There is currently no text in this page. You can [[index.php/Special:Search/Contents|search for this page title]] in other pages, or <span class="plainlinks">[http://wiki.evemu.dev/index.php?title=Special:Log&page=Help:Contents search the related logs]</span>. </div> </div> 3faa4ea437e26205ce2954e8b8a9144083d81b18 Old Wiki:Incursion FAQ 0 95 121 2021-04-03T14:25:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Common problems and questions answered! == <span id="Common_pitfalls_with_building_the_Database" class="mw-headline"> Common pitfalls with building the Database </span> == Check these things: * Did your Database build occur without errors? * Are the '''entity''' and '''corporation''' tables both NOT empty? * Is the '''entity''' table's AUTO_INCREMENT set to '''140000000'''? <br /> == <span id="I_tried_to_create_a_character_and_it_failed.2C_now_the_server_keeps_crashing_or_I_have_other_problems" class="mw-headline"> I tried to create a character and it failed, now the server keeps crashing or I have other problems </span> == A. No doubt something went wrong on the server side. Try these things to resolve the issue: * Clear the client settings files, all of them, by clicking the Reset Settings and Reset Cache buttons in the client ESC window * Rebuild your database completely from scratch </div> 5c9c24e8ef2c191c287c88eca2ff9e9bb9340940 Old Wiki:Invtypematerials 0 96 122 2021-04-03T14:25:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="invtypematerials" class="mw-headline"> invtypematerials </span> == Description of the invtypematerials Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'id' | int(11) | NOT NULL | PRIMARY |- | 'typeID' | int(11) | NULL | |- | 'materialTypeID' | int(11) | NULL | |- | 'quantity' | int(11) | NULL | |} '''Description of the fields''' <br /> ''''id'''' Unique ID for this process. Each component for every item has a unique number. Raised incrementally. <br /> ''''typeID'''' The database ID of the item being manufactured/reprocessed/refined. Refers to the [http://wiki.evemu.dev/index.php?title=%27invtypes%27&action=edit&redlink=1 'invtypes'] table. <br /> ''''materialTypeID'''' Refers to typeID number in [http://wiki.evemu.dev/index.php?title=%27invtypes%27&action=edit&redlink=1 'invtypes']. Most common entries. {| ! '''materialTypeID''' ! '''Field Type''' |- | '34' | Tritanium |- | '35' | Pyerite |- | '36' | Mexallon |- | '37' | Isogen |- | '38' | Nocxium |- | '39' | Zydrine |- | '40' | Megacyte |} <br /> ''''quantity'''' The 100% amount of mineral/item for manufacturing/reprocessing/refining. <br /> == <span id="Example" class="mw-headline">Example</span> == The entry 1179 is Velspar. Velspar is typeID 1230. It refines into Tritanium (34) at a quantity of 1000 at 100% efficiency. This is for a single refining (for each quantity of 333). </div> 478437b2bcda885be672e4b4195ce2e3937b02a2 Old Wiki:Invtypestowrecks 0 97 123 2021-04-03T14:26:07Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="invtypestowrecks" class="mw-headline"> invtypestowrecks </span> == Description of the invtypestowrecks Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'typeID' | int(11) | NOT NULL | PRIMARY |- | 'wreckTypeID' | int(11) | NOT NULL | |- | 'typename' | text | NOT NULL | |} '''Description of the fields''' <br /> ''''typeID'''' This is the typeID of the ship that was destroyed. Refers to the [[Invtypes.html|invtypes]] table. <br /> ''''wreckTypeID'''' This is the typeID of the wreck that will be spawned. Refers to the [[Invtypes.html|invtypes]] table. <br /> ''''typename'''' The name of the ship that was destroyed, for note keeping and quick reference. Refers to the [[Invtypes.html|invtypes]] table. <br /> <br /> ''''Example'''' 2382 - 26573 - Guristas Arrogator TypeID 2382 is the Guristas Arrogator TypeID 26573 is the Small Guristas wreck </div> 9621066075ab82893ab7b9b882395018dcc70eba Old Wiki:Invtypes 0 98 124 2021-04-03T14:26:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="invtypes" class="mw-headline"> invtypes </span> == Description of the invtypes Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'typeID' | int(11) | NOT NULL | PRIMARY |- | 'groupID' | int(11) | NULL | |- | 'typeName' | text | NULL | |- | 'description' | text | NULL | |- | 'graphicID' | int(11) | NULL | |- | 'radius' | double | NULL | |- | 'mass' | double | NULL | |- | 'volume' | double | NULL | |- | 'capacity' | double | NULL | |- | 'portionSize' | int(11) | NULL | |- | 'raceID' | tinyint(3) unsigned | NULL | |- | 'basePrice' | bigint(20) | NULL | |- | 'published' | bit(1) | NULL | |- | 'marketGroupID' | int(11) | NULL | |- | 'chanceOfDuplicating' | double | NULL | |- | 'soundID' | int(11) | NULL | |- | 'iconID' | int(11) | NULL | |- | 'dataID' | int(11) | NULL | |- | 'typeNameID' | int(11) | NULL | |- | 'descriptionID' | int(11) | NULL | |} '''Description of the fields''' <br /> ''''typeID'''' The unique number for each type of item/ship/implant/station/etc in the game. Many tables refer to this number. <br /> ''''groupID'''' Group this item belongs to, foe example all Small Hybrid Turrets would have the same groupID. Many tables refer to this number. <br /> ''''typeName'''' The name of the item/ship/implant/station/etc. <br /> ''''description'''' In game description of the item/ship/implant/station/etc. As appears in the '''Info''' window. <br /> ''''graphicID'''' The graphic used for the item. <br /> ''''radius'''' Radius of item, if applicable. <br /> ''''mass'''' Mass of item, if applicable. <br /> ''''volume'''' Volume of item, if applicable. <br /> ''''capacity'''' The holding (cargo) capacity, if applicable. <br /> ''''portionSize'''' Portion size of item, if applicable. Portion size is size of group for reprocessing purposes, for example. It also represents the number of units produced by a production run of the item. <br /> ''''raceID'''' The Loyalty Points (LP) needed to make a purchase. <br /> ''''basePrice'''' Which race(s) this item belongs to. Races are bitmask. <br /> ''''published'''' -1 if the item is published in the game market (including in Contracts), otherwise 0. <br /> ''''marketGroupID'''' Market group of item. If NULL, the item cannot be sold on the market. It could be sold through Contracts however. <br /> ''''chanceOfDuplicating'''' Chance of duplicating item. Duplication process is not implemented. <br /> ''''soundID'''' More information needed <br /> ''''iconID'''' More information needed <br /> ''''dataID'''' More information needed <br /> ''''typeNameID'''' More information needed <br /> ''''descriptionID'''' More information needed </div> 04b40101ae318ef86e26b3b9c25a4b90b71d811a Old Wiki:IRC 0 99 125 2021-04-03T14:26:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Forums|<span class="tocnumber">1</span> <span class="toctext">Forums</span>]] * [[#Teamspeak|<span class="tocnumber">2</span> <span class="toctext">Teamspeak</span>]] * [[#IRC_EVEmu|<span class="tocnumber">3</span> <span class="toctext">IRC EVEmu</span>]] ** [[#Finding_an_IRC_Client|<span class="tocnumber">3.1</span> <span class="toctext">Finding an IRC Client</span>]] ** [[#Downloading_and_installing|<span class="tocnumber">3.2</span> <span class="toctext">Downloading and installing</span>]] *** [[#Additional_info|<span class="tocnumber">3.2.1</span> <span class="toctext">Additional info</span>]] ** [[#Connecting_to_the_server|<span class="tocnumber">3.3</span> <span class="toctext">Connecting to the server</span>]] *** [[#Initial_Setting_Up|<span class="tocnumber">3.3.1</span> <span class="toctext">Initial Setting Up</span>]] *** [[#Common_Connect_routine|<span class="tocnumber">3.3.2</span> <span class="toctext">Common Connect routine</span>]] ** [[#Joining_the_channel|<span class="tocnumber">3.4</span> <span class="toctext">Joining the channel</span>]] ** [[#Closing_Notes|<span class="tocnumber">3.5</span> <span class="toctext">Closing Notes</span>]] |} = <span id="Forums" class="mw-headline"> Forums </span> = [http://forums.evemu.org/ EVEmu Forums] = <span id="Teamspeak" class="mw-headline"> Teamspeak </span> = Code_Red has been kind enough to keep a multi-channel Teamspeak server running for our use whenever we want to talk to each other during development, testing, or just shooting the breeze. Here are the connection details: * [http://www.teamspeak.com/ Teamspeak 3.x] * server address: '''evemu-serv.servehttp.com''' * port: '''9989''' <br /> * PS - please do not bug the other inhabitants on the other ports, thanks in advance. - Code_Red = <span id="IRC_EVEmu" class="mw-headline"> IRC EVEmu </span> = == <span id="Finding_an_IRC_Client" class="mw-headline"> Finding an IRC Client </span> == You can select a client of preference from this list [http://en.wikipedia.org/wiki/Comparison_of_IRC_clients IRC Client Comparison]. Also you can use web based IRC clients like [http://chat.mibbit.com/ mibbit] For this tutorial we are gonna be using [http://www.smuxi.org/ Smuxi] for its cross platform availability. Here are some IRC client favorites of some of our more active people: * [http://www.icechat.net/site/ IceChat] - Aknor (he likes v7 over v9 though ;) * [http://wiki.znc.in/ZNC ZNC] - ozatomic * [http://www.kvirc.net/ KVirc] - various * [http://xchat.org/ xchat] - various * [http://www.mirc.com/ mIRC] - various folks like this, but it's not free :( == <span id="Downloading_and_installing" class="mw-headline"> Downloading and installing </span> == The downloading and installation process are explained in detailed in [http://www.smuxi.org/page/Download Smuxis download page]. === <span id="Additional_info" class="mw-headline"> Additional info </span> === If whatever client prompts you for installing additional software its advised to only keep the vital parts of the client, as it might install unwanted advertising software. == <span id="Connecting_to_the_server" class="mw-headline"> Connecting to the server </span> == === <span id="Initial_Setting_Up" class="mw-headline"> Initial Setting Up </span> === You are only required to follow the following steps on first run. At the first execution of the client, you should click on File-&gt;Preferences at the top left corner of the window. From there you should only add your nickname on the nickname(s) field. After you are done setting a nickname, click on servers. Click Add. In the new window the only thing you should change is the Hostname field. Insert one from the list below: <br /> * gork.levelbelow.net (Master - Works) * bork.levelbelow.net (Works) * aussie.levelbelow.net (Works) * irc.evemu.net (Will point to all 3 servers) * irc.evemu.com (Will point to all 3 servers) <br /> Former servers (now defunct) * irc.evemu.org * irc.evemu.info * evemu.levelbelow.net <br /> Select OK twice. === <span id="Common_Connect_routine" class="mw-headline"> Common Connect routine </span> === The following steps are gonna be done each time you wish to connect. Click Server-&gt;Quick Connect. On the left, click the network address you entered and select Connect. You are now connected to the server == <span id="Joining_the_channel" class="mw-headline"> Joining the channel </span> == If you have successfully joined the server, you should head for the editbox and type, depending on your goal one of the following: '''/join #evemu''' (Preferred most people are on here. If you have a question say hi '''and''' ask, some people will help you as soon as they see the message.) '''/join #evemu-support''' == <span id="Closing_Notes" class="mw-headline"> Closing Notes </span> == If you successfully have a new tab named evemu, congratulations, you have just connected to the community IRC channel where you can talk live with everyone. If however you failed at some point you should head to the [wiki:FAQ] and look for a possible solution or you can always Google It </div> 87d2d420b3980a39090e9a2d140b20698809a71e Old Wiki:Jennifer 0 100 126 2021-04-03T14:26:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="Description" class="mw-headline"> '''Description''' </span> == Jennifer is a Test tool used by CCP. Not sure what it does at the moment. Please feel free to add more around this subject. '''Almamu:''' This tools seems to be a DB Editor for the server, but has functions for faces, connections testing, etc..., but not sure at the moment. The tool is programmed for Trinity. Seems to have modeling options... I have searched his torrent on Google and seems a Pre Trinity Test Server. </div> 0756a8a10f52a0862852ac7918132826698f0c18 Old Wiki:Known Bugs and Issues (Crucible) 0 101 127 2021-04-03T14:26:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#General_Interface_Problems|<span class="tocnumber">1</span> <span class="toctext">General Interface Problems</span>]] * [[#Account_and_Character_Management|<span class="tocnumber">2</span> <span class="toctext">Account and Character Management</span>]] * [[#Skills_-_Certificates_-_Implants_-_Clones|<span class="tocnumber">3</span> <span class="toctext">Skills - Certificates - Implants - Clones</span>]] * [[#NPC_Station_Services|<span class="tocnumber">4</span> <span class="toctext">NPC Station Services</span>]] * [[#Character_Interaction_Menus|<span class="tocnumber">5</span> <span class="toctext">Character Interaction Menus</span>]] * [[#Chats_-_Local_Corp_Custom_Private|<span class="tocnumber">6</span> <span class="toctext">Chats - Local Corp Custom Private</span>]] * [[#EvE_Mail_-_Calendar_-_Events|<span class="tocnumber">7</span> <span class="toctext">EvE Mail - Calendar - Events</span>]] * [[#Module_Management|<span class="tocnumber">8</span> <span class="toctext">Module Management</span>]] * [[#Item_Properties_Window|<span class="tocnumber">9</span> <span class="toctext">Item Properties Window</span>]] * [[#Market_Windows_-_Buy_Orders_-_Sell_Orders|<span class="tocnumber">10</span> <span class="toctext">Market Windows - Buy Orders - Sell Orders</span>]] * [[#Assets_Window|<span class="tocnumber">11</span> <span class="toctext">Assets Window</span>]] * [[#Wallet_Window|<span class="tocnumber">12</span> <span class="toctext">Wallet Window</span>]] * [[#Contracts|<span class="tocnumber">13</span> <span class="toctext">Contracts</span>]] * [[#Map_System|<span class="tocnumber">14</span> <span class="toctext">Map System</span>]] * [[#Ship_Management_in_Space|<span class="tocnumber">15</span> <span class="toctext">Ship Management in Space</span>]] * [[#Ship_Navigation_in_Space|<span class="tocnumber">16</span> <span class="toctext">Ship Navigation in Space</span>]] * [[#Ship_Combat_in_Space|<span class="tocnumber">17</span> <span class="toctext">Ship Combat in Space</span>]] * [[#NPC_Combat_Spawning_AI|<span class="tocnumber">18</span> <span class="toctext">NPC Combat Spawning AI</span>]] * [[#Scan_and_Directional_Probing|<span class="tocnumber">19</span> <span class="toctext">Scan and Directional Probing</span>]] * [[#Fleet_Management|<span class="tocnumber">20</span> <span class="toctext">Fleet Management</span>]] * [[#Overview_Management|<span class="tocnumber">21</span> <span class="toctext">Overview Management</span>]] * [[#Corporation_Management|<span class="tocnumber">22</span> <span class="toctext">Corporation Management</span>]] * [[#Alliance_Management|<span class="tocnumber">23</span> <span class="toctext">Alliance Management</span>]] * [[#Player_Owned_Station_.28POS.29_Deployment_and_Management|<span class="tocnumber">24</span> <span class="toctext">Player Owned Station (POS) Deployment and Management</span>]] * [[#Outpost_Construction_and_Management|<span class="tocnumber">25</span> <span class="toctext">Outpost Construction and Management</span>]] * [[#NPC_Corporation_Missions|<span class="tocnumber">26</span> <span class="toctext">NPC Corporation Missions</span>]] * [[#EvE_Server_API|<span class="tocnumber">27</span> <span class="toctext">EvE Server API</span>]] |} == <span id="General_Interface_Problems" class="mw-headline"> General Interface Problems </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | In-game browser does not load pages | 18-Jan-2014 |- | | | | |} <br /> == <span id="Account_and_Character_Management" class="mw-headline"> Account and Character Management </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Window Freeze | Opening Combat Log freezes the window and no more data can be pulled. | 14-Jan-2014 |- | Low | Window Freeze | Opening Decorations freezes the window and no more data can be pulled. | 14-Jan-2014 |- | Low | Database | Standings - Server correctly pulls from database but no information is created during character creation (tested by adding entries manually into DB) | 18-Jan-2014 |} <br /> == <span id="Skills_-_Certificates_-_Implants_-_Clones" class="mw-headline"> Skills - Certificates - Implants - Clones </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | Certificates&gt;Open Certification Planner does not open (Keyboard shortcut command doesn't work either) | 14-Jan-2014 |- | Low | Function | Certificates are not automatically awarded/or notification given | 14-Jan-2014 |- | Low | Visual | Some skills display wrong attributes when used in skill window | 14-Jan-2014 |- | Low | Convenience | All attributes start on minimal scores and need to be remapped on character creation | 14-Jan-2014 |- | Low | Convenience | Remapping needs re-logging to take effect | 14-Jan-2014 |- | Low | Convenience | Pausing then Apply the skill queue removes all skills from training -- E SkillMgrBound::Handle_CharStartTrainingSkillByTypeID(): TODO: This is used on resuming skill queue, so should be implemented | 20-Jan-2014 |- | Low | Function | Implants do not check for required Cybernetics level and are not implanted. | 20-Jan-2014 |} <br /> == <span id="NPC_Station_Services" class="mw-headline"> NPC Station Services </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | Insurance does not get offered | 14-Jan-2014 |- | Low | Function | Clicking ReCustomization has no effect | 14-Jan-2014 |- | Low | Function | Clicking Noble Exchange has no effect | 14-Jan-2014 |- | Medium | Function | Cannot get list of installations for manufacturing/research | 14-Jan-2014 |- | Low | Visual | HangarScene is empty space, not in-station image | 14-Jan-2014 |- | Medium | Function | Repair Services does not give quote | 14-Jan-2014 |- | Low | Function | Clicking on the 'Info&quot; button for station owner opens the window but no information appears | 14-Jan-2014 |- | Medium | Function | Getting quotes for reprocessing/refining opens the window but doesn't give an offer. | 14-Jan-2014 |} <br /> == <span id="Character_Interaction_Menus" class="mw-headline"> Character Interaction Menus </span> == {| | Priority | Consequence | Description | Date tested |- | | | | |} <br /> == <span id="Chats_-_Local_Corp_Custom_Private" class="mw-headline"> Chats - Local Corp Custom Private </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Visual | Character names do not get updated in local chat to subsequent clients logging into the system after the first | 14-Jan-2014 |- | Low | Visual | Character names do not get updated in corp chat to subsequent clients logging into the system after the first | 14-Jan-2014 |- | Low | Function | Right clicking on Chat and opening &quot;Open Channels&quot; does not work | 18-Jan-2014 |- | Low | Function | Initiating a private conversation opens a new channel but the receiving party doesn't get a request to join. | 18-Jan-2014 |} <br /> == <span id="EvE_Mail_-_Calendar_-_Events" class="mw-headline"> EvE Mail - Calendar - Events </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | Does not load mailbox, saving mails does work | 14-Jan-2014 |- | Low | Function | Does not open Calendar at all, via button or Shortcut command | 19-Jan-2014 |} <br /> == <span id="Module_Management" class="mw-headline"> Module Management </span> == {| | Priority | Consequence | Description | Date tested |- | Resolved [https://github.com/evemuproject/evemu_server/commit/610f68374dfaa76fb212c3cdc640bf6a03c63b40 [1]] | Server crash | Replacing a removed fitting to an empty slot crashes the server | 19-Jan-2014 |- | Medium | Function | Modules cannot load ammunition/charges | 19-Jan-2014 |- | Medium | Function | A module can be 'placed' over another. This will 'hide' the original. Persists after reset and undocking. Removing the newer module will reveal the original | 19-Jan-2014 |- | Medium | Function | Modules can be removed/moved around during flight. | 19-Jan-2014 |} <br /> == <span id="Item_Properties_Window" class="mw-headline"> Item Properties Window </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Visual | Blueprints do not display data or extra tabs | 14-Jan-2014 |- | Resolved [http://forum.evemu.org/viewtopic.php?f=20&t=41020 [2]] | Database | Adding a blueprint to inventory via GM commands or purchase crashed the server | 17-Jan-2014 |} <br /> == <span id="Market_Windows_-_Buy_Orders_-_Sell_Orders" class="mw-headline"> Market Windows - Buy Orders - Sell Orders </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | If several of the same item are sold at the same location, purchases are redirected. This occurs until the first order is completely sold out. The buy order is misplaced? | 14-Jan-2014 |} <br /> == <span id="Assets_Window" class="mw-headline"> Assets Window </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Window Freeze | Upon opening window it freezes (Problem pulling data?) | 14-Jan-2014 |} <br /> == <span id="Wallet_Window" class="mw-headline"> Wallet Window </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Visual | Journal tab doesn't display information | 14-Jan-2014 |- | Low | Visual | Shares doesn't display information | 14-Jan-2014 |- | Low | Window Freeze | Transactions tab &quot;LOAD&quot; button freezes window (Problem pulling data?) | 14-Jan-2014 |- | Low | Database | Shares cannot be viewed in either Personal Wallet or Corporation wallet [http://wiki.evemu.dev/index.php?title=Crpcharshares&action=edit&redlink=1 crpcharshares] | 19-Jan-2014 |} <br /> == <span id="Contracts" class="mw-headline"> Contracts </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | Tab '2' when making contracts window is empty for all types of contacts. So it cannot be completed | 14-Jan-2014 |} <br /> == <span id="Map_System" class="mw-headline"> Map System </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | Search feature doesn't work and freezes 'World Map Control Panel' window | 14-Jan-2014 |- | Low | Function | When 'hovering; over a system it will show the mini-window- but it doesn't branch out to show station services and agents | 14-Jan-2014 |- | Low | Server crash | Opening the information window for moons or celestial bodies causes a crash | 14-Jan-2014 |} <br /> == <span id="Ship_Management_in_Space" class="mw-headline"> Ship Management in Space </span> == {| | Priority | Consequence | Description | Date tested |- | Medium | Function | When leaving a space station can sometimes put you in the middle of the system | 19-Jan-2014 |} <br /> == <span id="Ship_Navigation_in_Space" class="mw-headline"> Ship Navigation in Space </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | Autopilot will randomly turn itself off during a trip | 14-Jan-2014 |- | Medium | Convenience | Server 'hangs' as it tried to load a new system when the player is going through a stargate | 14-Jan-2014 |} <br /> == <span id="Ship_Combat_in_Space" class="mw-headline"> Ship Combat in Space </span> == {| | Priority | Consequence | Description | Date tested |- | Medium | Functional | Shields do not save to their repaired state even though they appear to regenerate | 17-Jan-2014 |- | Low | Functional | Shields do not regenerate when docking/leaving a station | 17-Jan-2014 |} <br /> == <span id="NPC_Combat_Spawning_AI" class="mw-headline"> NPC Combat Spawning AI </span> == {| | Priority | Consequence | Description | Date tested |- | Medium | Server stability | Adding NPC's (Caldari Turrent III) can cause the server to think in loops as there are errors, can increase loading times from seconds to minutes (and still spawns nothing) | 14-Jan-2014 |} <br /> == <span id="Scan_and_Directional_Probing" class="mw-headline"> Scan and Directional Probing </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | D-scan 'looks' but cannot find DB? So it keeps looking (Same manner as searching for a system in Maps) | |} <br /> == <span id="Fleet_Management" class="mw-headline"> Fleet Management </span> == {| | Priority | Consequence | Description | Date tested |- | | | | |} <br /> == <span id="Overview_Management" class="mw-headline"> Overview Management </span> == {| | Priority | Consequence | Description | Date tested |- | | | | |} <br /> == <span id="Corporation_Management" class="mw-headline"> Corporation Management </span> == {| | Priority | Consequence | Description | Date tested |- | Low | Function | Cannot find button for corporation | 14-Jan-2014 |- | Low | Window Freeze | Upon opening Corporation Assets window it freezes (Problem pulling data?) When closing Corp window and reopening it stays on Assets | 14-Jan-2014 |- | Low | Database | Upon creating a Corporation. It replaces the image and name with that of an established (NPC corporation. Ticker and tax rate is correct. | 14-Jan-2014 |- | Low | Function | Unable to move corporation headquarters (Unknown call error) | 14-Jan-2014 |- | Low | Function | Corporation Names and creation issues Details: http://forum.evemu.org/viewtopic.php?f=20&t=40990 | 14-Jan-2014 |- | Low | Visual | Corporation&gt;Home at the bottom all 3 buttons (Dividends, Bulletin and Divisions) are all squashed together - re-logging fixes this but removes Bulletin. | 14-Jan-2014 |- | Low | Function | Server 'forgets' which wallet division you select | 14-Jan-2014 |- | Low | Function | Server does not search for Corporations when applying to join | 18-Jan-2014 |- | Low | Function | Server displays &quot;access denied&quot; when browsing Corp Wallet (cant remember which one you have selected?) | 18-Jan-2014 |- | Low | Function | Changing/creating a corporation does not create a new entry in [http://wiki.evemu.dev/index.php?title=Chremployment&action=edit&redlink=1 chremployment] | 19-Jan-2014 |- | Low | Database | Value error pulling Character applications (no data appears) [http://wiki.evemu.dev/index.php?title=Chrapplications&action=edit&redlink=1 chrapplications] | 19-Jan-2014 |} <br /> == <span id="Alliance_Management" class="mw-headline"> Alliance Management </span> == {| | Priority | Consequence | Description | Date tested |- | | | | |} <br /> == <span id="Player_Owned_Station_.28POS.29_Deployment_and_Management" class="mw-headline"> Player Owned Station (POS) Deployment and Management </span> == {| | Priority | Consequence | Description | Date tested |- | | | | |} <br /> == <span id="Outpost_Construction_and_Management" class="mw-headline"> Outpost Construction and Management </span> == {| | Priority | Consequence | Description | Date tested |- | | | | |} <br /> == <span id="NPC_Corporation_Missions" class="mw-headline"> NPC Corporation Missions </span> == {| | Priority | Consequence | Description | Date tested |- | Low | No missons | NPC agents do not display mission text/data from database | 17-Jan-2014 |- | Low | Function | Agent Finder does not open | 17-Jan-2014 |} <br /> == <span id="EvE_Server_API" class="mw-headline"> EvE Server API </span> == {| | Priority | Consequence | Description | Date tested |- | | | | |} <br /> </div> a0591099a01e0ef196598b69aaf8e1150551f716 Old Wiki:List of Admin and GM Commands 0 102 128 2021-04-03T14:26:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="EVEmu_Complete_List_of_Admin_and_GM_Commands" class="mw-headline"> EVEmu Complete List of Admin and GM Commands </span> = '''NOTE:''' In order to even have correct role in-game to issue these commands, your account in the [[Category_EVE_Database.html|EVE Database]] MUST be set according to what we've called the &quot;ROLEMASK_GRAVY&quot;, seen [[EVEmu_Account_Roles.html|in this article on Roles below the Incursion and later table]]. '''IMPORTANT - Use the commands below in the chat starting with &quot;.&quot; (.create (itemID) [count]) - IMPORTANT''' {| |width="33%"| Command Syntax |width="33%"| Implementation Status |width="33%"| What it does and how to use it |- | ban (charName) | | bans player's account from the server |- | chatban (characterID) | | bans character from channel |- | create (itemID) [count] | Functional | Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- | cloak | | cloaks/decloaks your ship. works like a toggle switch, keep executing it to toggle between cloaked/uncloaked |- | dogma (attribute) | | change item attribute value |- | entity (entityID) | | unknown |- | fit (itemID) | | Fits selected item to active ship. |- | getattr (itemID) (attributeID) | | Retrieves attribute value. |- | giveallskills (characterID) | | gives all skills to character |- | giveisk (entityID) (amount) | | Give the specified amount of cash to the specified character. 0=self. |- | giveskill (itemID) | | gives skills to fit item. |- | giveskills (itemID) | | gives skills to character. |- | goto (x) (y) (z) | | Jump to the specified position in space. |- | heal (entityID) | | heal the character with the entityID |- | kick (charName) | | kicks [charName] from the server |- | kill (entityID) | | kills the selected entity, now works for NPC ships too |- | killallnpcs | | kills ALL NPC ships in the current bubble |- | location | Functional | Gives you back your current location in space. |- | online (entityID) | | online all modules on the ship of the entityID. entityID=me=&gt;online my modules |- | pop (type) (key) (value) | | Send an OnRemoteMessage. |- | repairmodules (entityID) (itemID) | | repair the modules of the character with the entityID |- | search (text) | | Search for items matching the specified query |- | setattr (itemID) (attributeID) (value) | | Sets attributeID of itemID to value. |- | setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) | | Change blueprint's attributes. |- | spawn (typeID) | | Spawn an NPC with the specified type. |- | spawnbelt | | Spawns a small asteroid belt at the players location. |- | state | | Sends DoDestinyUpdate SetState. |- | syncloc | | Synchonizes your location in client with location on server. |- | tr [&lt;entityID&gt;|character name|me] [&lt;entityID&gt;|character name|solar system name|solarSystemID] | | Translocate the specified character to the specified entity, character, or solar system. All MUST be in space! <br /> |- | translocate [&lt;entityID&gt;|character name|me] [&lt;entityID&gt;|character name|solar system name|solarSystemID] | | Translocate the specified character to the specified entity, character, or solar system. All MUST be in space! |- | unload (entityID) (itemID) | | unload module itemID from entityID (itemID=all=&gt;unload all) (entityID=me=&gt;my modules) |- | unspawn (entityID) (itemID) | | unload module itemID from entityID (itemID=all=&gt;unload all) (entityID=me=&gt;my modules) |- | unban (charName) | | removes ban on player's account |- | whois (characterName) | | returns information on character |} More research into Slash commands can be found on [http://trac.evemu.org/wiki/Code_Red Code_Red's trac page] Alphabetized by Code_Red </div> b8aa276d528dfa864415854971aef6b2abbddc00 Old Wiki:Live EVE Architecture 0 103 129 2021-04-03T14:27:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Live_EVE_Architecture|<span class="tocnumber">1</span> <span class="toctext">Live EVE Architecture</span>]] ** [[#Basics|<span class="tocnumber">1.1</span> <span class="toctext">Basics</span>]] ** [[#Sol_Node|<span class="tocnumber">1.2</span> <span class="toctext">Sol Node</span>]] ** [[#Proxy_Nodes|<span class="tocnumber">1.3</span> <span class="toctext">Proxy Nodes</span>]] ** [[#DB_Node|<span class="tocnumber">1.4</span> <span class="toctext">DB Node</span>]] ** [[#Client_Nodes|<span class="tocnumber">1.5</span> <span class="toctext">Client Nodes</span>]] |} = <span id="Live_EVE_Architecture" class="mw-headline"> Live EVE Architecture </span> = == <span id="Basics" class="mw-headline"> Basics </span> == The live EVE server is run on multiple machines, each machine has a role. A role can be either sol, proxy or db. == <span id="Sol_Node" class="mw-headline"> Sol Node </span> == Sol nodes are the core of the live EVE server, they provide a number of services to the client, which allow it to interact and retreive information about the game-world. == <span id="Proxy_Nodes" class="mw-headline"> Proxy Nodes </span> == In order to protect Sol nodes from the internet, there are Proxy nodes that forward the information, they are lightweight (and thus not much to loose if the server is attacked) and often are only used 1/per cluster. == <span id="DB_Node" class="mw-headline"> DB Node </span> == These are database nodes, only one is required per cluster, and it is accessed by both Sol and Proxy nodes. It contains information about the layout of the cluster, and any other information that needs to be stored. == <span id="Client_Nodes" class="mw-headline"> Client Nodes </span> == Clients connect to only the proxy servers via a WAN (the internet in this case). Their proxy node then forwards information from all of the cluster's sol nodes and the DB node to the client. </div> 6142a94cb0085f98e7054faff1a4eed5e08a033a Old Wiki:Lprequireditems 0 104 130 2021-04-03T14:27:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="lprequired" class="mw-headline"> lprequired </span> == Description of the lprequired Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'parentID' | int(10) | NOT NULL | |- | 'typeID' | int(10) | NOT NULL | |- | 'quantity' | int(10) | NOT NULL | |} '''Description of the fields''' <br /> ''''parentID'''' This is the StoreID in the table [[Lpstore.html|lpstore]]. <br /> ''''typeID'''' The ID of the item(s) needed to purchase. Refers to the [[Invtypes.html|invtypes]] table. <br /> ''''quantity'''' The quantity of the items (typeID) needed. <br /> == <span id="Example" class="mw-headline">Example</span> == ParentID 102 (Navy issue raven) has two entries; 638 (Raven) 1 17643 (Caldari AZ-1 Nexus Chip) 1 </div> dc0b16a0ae6c5ba3573b29f82013d827670a56ac Old Wiki:Lpstore 0 105 131 2021-04-03T14:27:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="lpstore" class="mw-headline"> lpstore </span> == Description of the lpstore Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'storeID' | int(5) unsigned | NOT NULL | PRIMARY |- | 'corporationID' | int(10) | NOT NULL | |- | 'typeID' | int(10) | NOT NULL | |- | 'quantity' | int(10) | NOT NULL | |- | 'lpCost' | int(10) | NOT NULL | |- | 'iskCost' | int(10) | NOT NULL | |} '''Description of the fields''' <br /> ''''storeID'''' This is the StoreID in the table [[Lprequireditems.html|Lprequireditems]]. Incremental for every offer. <br /> ''''corporationID'''' The corporationID of the item(s) needed to purchase. Refers to the [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation] table. <br /> ''''typeID'''' The typeID of the item given. Refers to the [[Invtypes.html|invtypes]] table. <br /> ''''quantity'''' The quantity of the items (typeID) given. <br /> ''''lpCost'''' The Loyalty Points (LP) needed to make a purchase. <br /> ''''iskCost'''' The ISK needed to make a purchase. </div> e556cf49fdbac342ca5d20b7b3a2f32e685b3338 Old Wiki:Main Page 0 106 132 2021-04-03T14:27:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | '''HOME''' (you are here) |} <br /> {| ! Welcome to [[File_Evemulogo.html|[[File:../images/thumb/0/0b/Evemulogo.png/200px-Evemulogo.png|200x67px|EVEmu]]]] the ONLY EVE Online Emulator! |} <div class="floatright"> [[File_Evemu_banner_erebus_vs_leviathan.html|[[File:../images/thumb/b/bf/Evemu_banner_erebus_vs_leviathan.png/480px-Evemu_banner_erebus_vs_leviathan.png|480x174px|Evemu banner erebus vs leviathan.png]]]] </div> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu_Developers_Hub.html#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''[[Category_Crucible.html|Crucible]] 1.6.5''' client and for the foreseeable future, we're staying with that client. See the '''[[Server_Status_(Crucible).html|Crucible Project Status]]''' page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[Category_Crucible.html|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu_Control_Panel.html|EVEmu Control Panel]] program. We also have a work-in-progress [[Category_EVEmu_Web_Portal.html|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu_Connect.html#IRC_EVEmu|IRC]] conversations and [[EVEmu_Connect.html#Teamspeak|Teamspeak]] conversations, then [[Getting_Started.html|get started learning the server codebase]] while you learn C++ from some [[Getting_Started.html#Getting_Started|tutorials]] and from our experienced programmers right alongside us.<br /> <br /> ----- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu_Connect.html|Connect with us via IRC, Teamspeak, Forums]] * [[Quick_Start_Guide.html|Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! <br /> '''Developers!''' * [[EVEmu_Developers_Hub.html|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent_Project_Activity.html|Recent Project Activity]] - Here's what's been going on lately ----- <br /> Here are what some of the people who've stopped by have said about our project: <pre>&quot;Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well.&quot; &quot;Great work devs.&quot; .... and then I LOL'd -- Aknor</pre> <pre>&quot;[17:30] &lt;@M4ksiu&gt; pure awesomeness&quot;</pre> <pre>&quot;[08:35] &lt;+B3N4K-WIN&gt; Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like &quot;WOW!! I thought it's impossible to make emulator! How did they do that?!&quot;... And 2 hours later i was flying in scam-free Jita :)&quot;</pre> <br /> Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu_Connect.html|IRC or Teamspeak]], try the [[Special_Search.html|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team <br /> {| |align="center" width="25%"| Server Projects |align="center" width="25%"| EVEmu Documentation |align="center" width="25%"| Server Administrators |align="center" width="25%"| Developers |- |align="center"| '''Use these links if you want to build the server:''' * ACTIVE BRANCHES ** [[Category_Crucible.html|EVEmu Crucible Server]] | [[EVEmu_PROJECT_PLAN.html|Project Plan]] *** '''-- IN DEVELOPMENT PHASE --''' * NOT APPROVED BRANCHES ** [[Category_Inferno.html|EVEmu Inferno]] *** '''-- NOT ACTIVE --''' * OLD BRANCHES ** [[Category_Escalation_To_Inferno.html|EVEmu Escalation to Inferno]] *** (retired) ** [[Category_Incursion.html|EVEmu Incursion Server]] *** (retired) ** [[Category_Apocrypha.html|EVEmu Apocrypha Server]] *** (retired) |align="center"| '''Use these links if you want to learn how game features are implemented on EVEmu's server and learn about the backend framework that the server needs to do its job:''' * [[Category_Users_Guide.html|User's Guide]] * [[Category_Game_Operation.html|Game Operation]] * [[Category_EVE_Database.html|EVE Database]] * [[Category_EVEmu_API_Server.html|EVEmu API Server]] * [[EVEmu_Thin_Client.html|EVEmu Thin Client]] * [[Out_of_Game_Player_Tools.html|Out of Game Player Tools]] |align="center"| '''Use these links to learn about tools used to administer a server:''' * [[List_of_Admin_and_GM_Commands.html|List of Admin and GM Commands]] * [[Category_EVEmu_Web_Portal.html|EVEmu Web Portal]] |align="center"| '''Use these links to learn about development status and ongoing development work:''' * ACTIVE ** [[Server_Status_(Crucible).html|Crucible Project Status]] | [[EVEmu_PROJECT_PLAN.html|Project Plan]] * RESOURCES ** [[Category_EVEmu_Development.html|EVEmu Development]] ** [[Getting_Started.html|Getting Started]] ** [[Development_Team.html|Development Team]] ** [[Development_Practices.html|Development Practices]] ** [[Source_Code.html|Source Code]] ** [[Category_Testing_EVEmu.html|Testing EVEmu]] ** [[EVEmu_Connect.html|Connect with EVEmu Community]] - IRC, Forums, Teamspeak * OLD BRANCHS ** [[Server_Status_(Incursion).html|Incursion Project Status]] |} <div style="border: 1px solid #ffe; text-align: center; background-color: #ffe; padding: 5px;"> <div style="font-size:1.1em; font-weight:bold"> This is an open source project, please, keep things [[General_disclaimer.html|legal]]. </div> Links to illegal warez, copyrighted materials, etc. will be removed. ([[General_disclaimer.html|Details]]) </div> </div> 6058273b5972e92914cf1525c9f2cb7dbab05776 Old Wiki:Market orders 0 107 133 2021-04-03T14:27:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="market_orders" class="mw-headline"> market_orders </span> == Description of the market_orders Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' ! '''Default Value''' |- | 'orderID' | int(10) unsigned | NOT NULL | PRIMARY | |- | 'typeID' | int(10) unsigned | NOT NULL | | 0 |- | 'charID' | int(10) unsigned | NOT NULL | | 0 |- | 'regionID' | int(10) unsigned | NOT NULL | | 0 |- | 'stationID' | int(10) unsigned | NOT NULL | | 0 |- | 'range' | int(10) unsigned | NOT NULL | | 0 |- | 'bid' | tinyint(3) unsigned | NOT NULL | | 0 |- | 'price' | double | NOT NULL | | 0 |- | 'volEntered' | int(10) unsigned | NOT NULL | | 0 |- | 'volRemaining' | int(10) unsigned | NOT NULL | | 0 |- | 'issued' | bigint(20) unsigned | NOT NULL | | 0 |- | 'orderState' | int(10) unsigned | NOT NULL | | 0 |- | 'minVolume' | int(10) unsigned | NOT NULL | | 0 |- | 'contraband' | tinyint(3) unsigned | NOT NULL | | 0 |- | 'accountID' | int(10) unsigned | NOT NULL | | 0 |- | 'duration' | int(10) unsigned | NOT NULL | | 0 |- | 'isCorp' | tinyint(3) unsigned | NOT NULL | | 0 |- | 'solarSystemID' | int(11) | NOT NULL | | 0 |- | 'jumps' | tinyint(4) | NOT NULL | | 1 |} '''Description of the fields''' <br /> ''''orderID'''' Unique order ID for this order. Raised incrementally as new orders are made. <br /> ''''typeID'''' The database ID of the item being sold. Refers to the [[Invtypes.html|invtypes]] table. <br /> ''''charID'''' The database ID of the character that placed this order. Refers to the [[Character.html|character_]] table. A value of '1' gives the money to nobody (an NPC). <br /> ''''regionID'''' The database ID number for the region. Refers to the [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] table. For example; Lonetrek = '10000016' <br /> ''''stationID'''' The database ID number of the station where the order will be placed. Refers to the [[Stastations.html|stastations]] table. <br /> ''''range'''' The range this order is good for. For sell orders, this is always 32767. For buy orders, allowed values are: -1 = station, 0 = solar system, 1 = 1 jump, 2 = 2 jumps, ..., 32767 = region. <br /> Note: Other sources say that for sell orders this is always 32767. Testing has shown that 0 for sell orders also works regionally. <br /> ''''bid'''' If true this is a bid or buy order, else it is a sell order. (leave as 0) <br /> ''''price'''' The order price per unit. An entry of 'baseprice' will use the price in [[Invtypes.html|invtypes]] but multiply it by 10,000. <br /> ''''volEntered'''' The initial quantity being bought/sold. <br /> ''''volRemaining'''' The remaining quantity being bought/sold. <br /> ''''issued'''' The time/date the order was made. Uses ISO 8601 format. &quot;yyyy-MM-ddTHH:mm:sszzz&quot; (example 2013-12-03T10:53:26+00:00) <br /> ''''orderState'''' {| ! '''Member''' ! '''Value''' ! '''Description''' |- | OpenActive | 0 | If the market order is still active and up on the market |- | Closed | 1 | The order has been closed |- | ExpiredFulfilled | 2 | The order has expired, or has been fulfilled so it is no longer active |- | Canceled | 3 | The order was canceled |- | Pending | 4 | The order is currently pending, and not on the market |- | CharacterDeleted | 5 | The character that this order was associated with has been deleted |} ''''minVolume'''' The minimum quantity that will be accepted if it is a buy order. <br /> ''''contraband'''' <br /> Note: Further investigation is needed. Default value is '0'. <br /> ''''accountID'''' This is which wallet the order is using, for a personal order this will always be 1000, for corporation orders it can be 1000-1006 depending on which wallet is being used. <br /> ''''duration'''' The length the order is active in days. <br /> ''''isCorp'''' Corporation making the order. Note: Further investigation is needed. Default value is '0'. <br /> ''''solarSystemID'''' The database ID number for the solar system. Refers to the [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] table. <br /> ''''escrow'''' How much ISK is in escrow. <br /> ''''jumps'''' NOT the distance from the player. Note: Further investigation is needed. Default value is '1'. == <span id="Example_SQL_code.3B" class="mw-headline">Example SQL code;</span> == -- CODE FOR 128 DRONE SKILLBOOKS AT 20000 IN AKIAINAVAS FOR ONE YEAR, SOLD BY NPC INSERT INTO market_orders (typeID, charID, regionID, stationID, bid, price, volEntered, volRemaining, issued, orderState, minVolume, contraband, accountID, duration, isCorp, solarSystemID, escrow, jumps) VALUES ('24613','1','10000016','60015001','0','20000','128','128','130298106086807141','0','1','0','0','365','0','30011407','0','1'); Note: When entering the field 'range' Mysql creates a 1064 error. So 'range' has been removed from this injection. </div> a1ef03f5ad4962b9dac5d873e187bb563a03914e Old Wiki:Module Effects Info and Actions Complete List 0 108 134 2021-04-03T14:27:57Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> ''[[Category_Module_Manager.html|Module Manager]] &lt;-- Main Article'' {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#GENERAL_USE_EFFECTS|<span class="tocnumber">1</span> <span class="toctext">GENERAL USE EFFECTS</span>]] * [[#ACTIVE_MODULES_-_MODULE_EFFECTS_INFORMATION|<span class="tocnumber">2</span> <span class="toctext">ACTIVE MODULES - MODULE EFFECTS INFORMATION</span>]] ** [[#Armor_Hardeners_-_groupID_328|<span class="tocnumber">2.1</span> <span class="toctext">Armor Hardeners - groupID 328</span>]] ** [[#MicroWarpdrives_and_Afterburners_-_groupID_46|<span class="tocnumber">2.2</span> <span class="toctext">MicroWarpdrives and Afterburners - groupID 46</span>]] ** [[#Shield_Boosters_-_groupID_40|<span class="tocnumber">2.3</span> <span class="toctext">Shield Boosters - groupID 40</span>]] ** [[#Energy_Destabilizers_-_groupID_71|<span class="tocnumber">2.4</span> <span class="toctext">Energy Destabilizers - groupID 71</span>]] ** [[#Projectile_Weapon_-_groupID_55|<span class="tocnumber">2.5</span> <span class="toctext">Projectile Weapon - groupID 55</span>]] *** [[#Projectile_Weapon_Charge_-_groupID_83|<span class="tocnumber">2.5.1</span> <span class="toctext">Projectile Weapon Charge - groupID 83</span>]] ** [[#Hybrid_Weapon_-_groupID_74|<span class="tocnumber">2.6</span> <span class="toctext">Hybrid Weapon - groupID 74</span>]] *** [[#Hybrid_Weapon_Charge_-_groupID_83|<span class="tocnumber">2.6.1</span> <span class="toctext">Hybrid Weapon Charge - groupID 83</span>]] ** [[#Energy_Weapon_-_groupID_53|<span class="tocnumber">2.7</span> <span class="toctext">Energy Weapon - groupID 53</span>]] *** [[#Energy_Weapon_Charge_-_groupID_86|<span class="tocnumber">2.7.1</span> <span class="toctext">Energy Weapon Charge - groupID 86</span>]] *** [[#Hybrid_Weapon_Charge_-_groupID_83_2|<span class="tocnumber">2.7.2</span> <span class="toctext">Hybrid Weapon Charge - groupID 83</span>]] ** [[#Electronic_Countermeasure_-_groupID_201|<span class="tocnumber">2.8</span> <span class="toctext">Electronic Countermeasure - groupID 201</span>]] * [[#PASSIVE_MODULES_-_MODULE_EFFECTS_INFORMATION|<span class="tocnumber">3</span> <span class="toctext">PASSIVE MODULES - MODULE EFFECTS INFORMATION</span>]] ** [[#Armor_Plating_-_groupID_540|<span class="tocnumber">3.1</span> <span class="toctext">Armor Plating - groupID 540</span>]] ** [[#Cap_Rechargers_-_groupID_43|<span class="tocnumber">3.2</span> <span class="toctext">Cap Rechargers - groupID 43</span>]] ** [[#Power_Diagnostic_Systems_-_groupID_766|<span class="tocnumber">3.3</span> <span class="toctext">Power Diagnostic Systems - groupID 766</span>]] ** [[#Gyrostabilizers_-_groupID_59|<span class="tocnumber">3.4</span> <span class="toctext">Gyrostabilizers - groupID 59</span>]] ** [[#Shield_Power_Relays_-_groupID_57|<span class="tocnumber">3.5</span> <span class="toctext">Shield Power Relays - groupID 57</span>]] ** [[#Tracking_Enhancers_-_groupID_211|<span class="tocnumber">3.6</span> <span class="toctext">Tracking Enhancers - groupID 211</span>]] |} <br /> = <span id="GENERAL_USE_EFFECTS" class="mw-headline"> GENERAL USE EFFECTS </span> = * '''online''' (effectID = 16) - effective in module '''ONLINE''' state and is applicable in all states except for '''OFFLINE''' ** modifies powerLoad (attributeID = 15) using power (attributeID = 30) from the module ** modifies cpuLoad (attributeID = 49) using cpu (attributeID = 50) from the module * Capacitor Consumption - this needs copy pasted to EVERY '''Active''' module on this page since there is no one separate effectID that can be used to associate with this effect ** modifies charge (attributeID = 18) using capacitorNeed (attributeID = 6) from the module once per cycle while the module is in the '''Activated''' state <br /> {| |+ dgmEffectsInfo General Use Effects | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 16 | 15 | 30 | 2002 | 2003 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | Online effect to apply loading to Ship's power | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 16 | 49 | 50 | 2002 | 2003 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | Online effect to apply loading to Ship's cpu | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | &lt;effectID&gt; | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |} = <span id="ACTIVE_MODULES_-_MODULE_EFFECTS_INFORMATION" class="mw-headline"> ACTIVE MODULES - MODULE EFFECTS INFORMATION </span> = == <span id="Armor_Hardeners_-_groupID_328" class="mw-headline"> Armor Hardeners - groupID 328 </span> == Some information about resonances. The same math applies to shield resonances as it does to armor resonances. <pre>New_Resonance = Current_Resonance * (1 + (resonanceBonus / 100)) where resonanceBonus is a number between 0 and 100 and is a percent (%)</pre> <br /> {| |+ dgmEffectsInfo - groupID 328 - Armor Hardeners | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2084 | 267 | 994 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2084 | 268 | 995 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2084 | 269 | 996 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2084 | 270 | 997 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2098 | 267 | 984 | 2012 | 2013 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2098 | 268 | 985 | 2012 | 2013 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2098 | 269 | 986 | 2012 | 2013 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2098 | 270 | 987 | 2012 | 2013 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2098 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3029 | 984 | 1208 | 2012 | 2013 | 1500 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3030 | 987 | 1208 | 2012 | 2013 | 1500 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3031 | 985 | 1208 | 2012 | 2013 | 1500 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3032 | 986 | 1208 | 2012 | 2013 | 1500 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 328 - Armor Hardeners | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 2084 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 2098 | 1103 | 1 | 2084 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3029 | 1104 | 1 | 2084 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3030 | 1104 | 1 | 2084 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3031 | 1104 | 1 | 2084 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3032 | 1104 | 1 | 2084 | |- | | | | | | |- | | | | | | |} == <span id="MicroWarpdrives_and_Afterburners_-_groupID_46" class="mw-headline"> MicroWarpdrives and Afterburners - groupID 46 </span> == For Microwarpdrives and Afterburners, a special case amongst modules, the calculation to change the ship's max velocity is different than any other module. Note the following (for both afterburners and MWDs): * 1mn = add 500,000kg to mass * 10mn = add 5,000,000kg to mass * 100mn = add 50,000,000kg to mass The equation is '''New Max Velocity''' = '''Base Velocity''' * (1 + ('''BoostAmount''' / ('''ShipMass''' + '''PenaltyMass''') * '''BoostAmount''' * '''AcclControlLevel''')) So a Taranis with a T2 MWD and Acceleration Control skill trained to Level 3 will have a maximum velocity of: <pre>525 m/s base with Navigation skill at Level 5 525 + 525 * (1,500,000kg / (1,075,000kg + 500,000kg) * 5.5 * 1.15) = 3,687.5 m/s</pre> The equation holds true for both afterburners and microwarpdrives. A [http://eve.allakhazam.com/wiki/EVE_Guide_Top_Speed_Calculation_Guide second source for the equation] shows: <pre>Cruising speed = (base speed of ship + increase/decrease from Overdrives/Nanofibers/Expanded Cargoholds) * (1 + navigation skill level * 0.05) * (1 + racial ship skill level * x [where applicable]) * (velocity implant(s)) * (gang skill/warfare module bonus(es)) </pre> <pre>Boosted speed (i.e. the top speed when the boosting module is active) = Cruising speed * (1 + (base boost of AB or MWD * (1 + accel control level * 0.05) * (ab/mwd implant(s)) * (thrust / (ship mass + modules mass)))</pre> <pre>Overloaded speed (i.e. the top speed when the boosting module is active AND overloaded) = Cruising speed * (1 + (base boost of AB or MWD * (1 + accel control level * 0.05) * (ab/mwd implant(s)) * (thrust / (ship mass + modules mass)))</pre> <br /> {| |+ dgmEffectsInfo - groupID 46 - Afterburners | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 58 | 482 | 147 | 2005 | 2004 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | NOTE - Check to make sure this effect is not subject to Stacking Penalty!!! | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 710 | 4 | 796 | 2002 | 2003 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 710 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 712 | 37 | 20 | 2014 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1253 | 4 | 796 | 2002 | 2003 | 1500 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | Adds mass to ship | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3175 | 20 | 1223 | 2012 | 2013 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsInfo - groupID 46 - Microwarpdrives - Same as Afterburner + the one below | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1254 | 4 | 796 | 2002 | 2003 | 1500 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | Adds mass to ship | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1254 | 552 | 554 | 2012 | 2013 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 46 - Microwarpdrives and Afterburners | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 58 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 710 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 712 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 1253 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 1254 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3175 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Shield_Boosters_-_groupID_40" class="mw-headline"> Shield Boosters - groupID 40 </span> == {| |+ dgmEffectsInfo - groupID 40 - Shield Boosters | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 4 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 4 | 264 | 68 | 2002 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3201 | 73 | 1206 | 2006 | 2007 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3201 | 68 | 1231 | 2002 | 2003 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 40 - Shield Boosters | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 4 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3201 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Energy_Destabilizers_-_groupID_71" class="mw-headline"> Energy Destabilizers - groupID 71 </span> == {| |+ dgmEffectsInfo - groupID 71 - Energy Destabilizers | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2303 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2303 | 18 | 97 | 2003 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3002 | 73 | 1206 | 2006 | 2007 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 71 - Energy Destabilizers | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 2303 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3002 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Projectile_Weapon_-_groupID_55" class="mw-headline"> Projectile Weapon - groupID 55 </span> == Effective &quot;DPS&quot; as we know it seems to be a complete sum of all damage types' damage values from a charge multiplied by the '''damageMultiplier''' on the weapon module. Now, of course, EVEmu won't be summing the damage and applying it to the target in a composite way, but each of the four damage types will have their own value to be applied to the target as a package of four damage values, each to be applied to the resistances of the target, whatever they may be. For the purposes of the Fitting window and EFT's &quot;DPS&quot; calculation, the damage types' values are all summed. <br /> {| |+ dgmEffectsInfo - groupID 55 - Projectile Weapon | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 114 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 116 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 117 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 118 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3001 | 51 | 1205 | 2008 | 2009 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3025 | 64 | 1210 | 2012 | 2013 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 55 - Projectile Weapon | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 34 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3001 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3025 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |} === <span id="Projectile_Weapon_Charge_-_groupID_83" class="mw-headline"> Projectile Weapon Charge - groupID 83 </span> === '''NOT A MODULE''' this is a weapon charge loaded INTO a [[#Projectile_Weapon_-_groupID_55|Projectile Weapon]] module. <br /> {| |+ dgmEffectsInfo - groupID 55 - Projectile Weapon | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 596 | 54 | 120 | 2005 | 2004 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | We're assuming this affects maxRange attribute on a weapon module | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 600 | 160 | 244 | 2005 | 2004 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | It's pretty clear that this affects weapon trackingSpeed attribute | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1173 | 64 | 779 | 2000 | 2000 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | This is used for nothing that we can determine! We're leaving calculation type to NONE for now. | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 55 - Projectile Weapon | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 596 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 600 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 1173 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Hybrid_Weapon_-_groupID_74" class="mw-headline"> Hybrid Weapon - groupID 74 </span> == {| |+ dgmEffectsInfo - groupID 74 - Hybrid Weapon | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 114 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 116 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 117 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 34 | 118 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 34 - projectileFired | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3001 | 51 | 1205 | 2008 | 2009 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3025 | 64 | 1210 | 2012 | 2013 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 74 - Hybrid Weapon | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 34 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3001 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3025 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |} === <span id="Hybrid_Weapon_Charge_-_groupID_83" class="mw-headline"> Hybrid Weapon Charge - groupID 83 </span> === '''NOT A MODULE''' this is a weapon charge loaded INTO a [[#Hybrid_Weapon_-_groupID_74|Hybrid Weapon]] module. <br /> {| |+ dgmEffectsInfo - groupID 85 - Hybrid Weapon | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 596 | 54 | 120 | 2008 | 2009 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | We're assuming this affects maxRange attribute on a weapon module | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 804 | 6 | 317 | 2012 | 2013 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | It's pretty clear that this affects weapon capacitor need | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 85 - Hybrid Weapon | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 596 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 804 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Energy_Weapon_-_groupID_53" class="mw-headline"> Energy Weapon - groupID 53 </span> == {| |+ dgmEffectsInfo - groupID 53 - Energy Weapon | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 10 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 10 | 114 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 10 - targetAttack | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 10 | 116 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 10 - targetAttack | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 10 | 117 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 10 - targetAttack | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 10 | 118 | 64 | 2005 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Primary damage dealing effectID 10 - targetAttack | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3001 | 51 | 1205 | 2008 | 2009 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3025 | 64 | 1210 | 2012 | 2013 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 53 - Energy Weapon | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 10 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3001 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3025 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |} === <span id="Energy_Weapon_Charge_-_groupID_86" class="mw-headline"> Energy Weapon Charge - groupID 86 </span> === '''NOT A MODULE''' this is a weapon charge loaded INTO a [[#Energy_Weapon_-_groupID_53|Energy Weapon]] module. <br /> {| |+ dgmEffectsInfo - groupID 86 - Energy Weapon Charge | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 596 | 54 | 120 | 2008 | 2009 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | We're assuming this affects maxRange attribute on a weapon module | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 804 | 6 | 317 | 2012 | 2013 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | It's pretty clear that this affects weapon capacitor need | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 86 - Energy Weapon Charge | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 596 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 804 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |} === <span id="Hybrid_Weapon_Charge_-_groupID_83_2" class="mw-headline"> Hybrid Weapon Charge - groupID 83 </span> === '''NOT A MODULE''' this is a weapon charge loaded INTO a [[#Hybrid_Weapon_-_groupID_74|Hybrid Weapon]] module. <br /> {| |+ dgmEffectsInfo - groupID 85 - Hybrid Weapon | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 596 | 54 | 120 | 2008 | 2009 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | We're assuming this affects maxRange attribute on a weapon module | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 804 | 6 | 317 | 2012 | 2013 | 1504 | 1300 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | It's pretty clear that this affects weapon capacitor need | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 85 - Hybrid Weapon | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 596 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 804 | 1203 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Electronic_Countermeasure_-_groupID_201" class="mw-headline"> Electronic Countermeasure - groupID 201 </span> == A [http://webcache.googleusercontent.com/search?q=cache:qpaUOKlDTEcJ:https://forums.eveonline.com/default.aspx%3Fg%3Dposts%26t%3D37608+&cd=1&hl=en&ct=clnk&gl=us post on EVE Gate] claims that jamming is always 100%, so he suggests this formula (which obviously cannot be true but fun for laughs): The true ECM formula is below: $ C = (1 - (1 - J/S)^{n}) * 0 + 100 $ <pre>J = Jamming strength of ECM modules (Previously modified with falloff/skills/etc) S = Sensor strength of ship n = Number of jammers C = Chance to jam (%)</pre> Instead, he declares jamming overpowered and then suggests this formula, which is 1024 times as laughable as the last one: $ P = (J + S)^{(N + 4)^{1024}} $ <pre>J = Jamming strength of ECM modules (Previously modified with falloff/skills/etc) S = Sensor strength of ship n = Number of jammers P = Points of damage the ship which uses the ECM modules receives</pre> I'm willing to bet the real formula is actually this (which is confirmed on wiki.eveonline.com [http://wiki.eveonline.com/en/wiki/Electronic_warfare_guide article here]): $ C = 1 - (1 - J/S)^n $ <pre>J = Jamming strength of ECM modules (Previously modified with falloff/skills/etc) S = Sensor strength of ship n = Number of jammers C = Chance to jam (%)</pre> We will use this last formula, but ''might'' consider the formula above this one.... NOT, LOL. <br /> {| |+ dgmEffectsInfo - groupID 201 - Electronic Countermeasure | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1358 | 18 | 6 | 2003 | 2000 | 1501 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1602 | 0 | &quot;&quot; | 1700 | Active effect to consume capacitor charge each cycle | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1358 | 208 | 241 | 2015 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1358 | 209 | 239 | 2015 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1358 | 210 | 240 | 2015 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1358 | 211 | 238 | 2015 | 2000 | 1502 | 1302 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3182 | 241 | 1225 | 2006 | 2007 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3182 | 239 | 1225 | 2006 | 2007 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3182 | 240 | 1225 | 2006 | 2007 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3182 | 238 | 1225 | 2006 | 2007 | 1500 | 1303 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1601 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 201 - Electronic Countermeasure | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 1358 | 1103 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3182 | 1104 | 0 | 0 | |- | | | | | | |- | | | | | | |} = <span id="PASSIVE_MODULES_-_MODULE_EFFECTS_INFORMATION" class="mw-headline"> PASSIVE MODULES - MODULE EFFECTS INFORMATION </span> = == <span id="Armor_Plating_-_groupID_540" class="mw-headline"> Armor Plating - groupID 540 </span> == {| |+ dgmEffectsInfo - groupID 540 - Armor Plating | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 63 | 265 | 148 | 2005 | 2006 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2041 | 267 | 984 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2041 | 268 | 985 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2041 | 269 | 986 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 2041 | 270 | 987 | 2012 | 2013 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 540 - Armor Plating | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 63 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 2041 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Cap_Rechargers_-_groupID_43" class="mw-headline"> Cap Rechargers - groupID 43 </span> == {| |+ dgmEffectsInfo - groupID 43 - Cap Rechargers | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 51 | 55 | 144 | 2005 | 2006 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1701 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 43 - Cap Rechargers | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 51 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Power_Diagnostic_Systems_-_groupID_766" class="mw-headline"> Power Diagnostic Systems - groupID 766 </span> == {| |+ dgmEffectsInfo - groupID 766 - Power Diagnostic Systems | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 50 | 479 | 134 | 2005 | 2006 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 51 | 55 | 144 | 2005 | 2006 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 56 | 11 | 145 | 2005 | 2006 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 57 | 263 | 146 | 2005 | 2006 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 58 | 482 | 147 | 2005 | 2006 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 0 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 766 - Power Diagnostic Systems | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 50 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 51 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 56 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 57 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 58 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Gyrostabilizers_-_groupID_59" class="mw-headline"> Gyrostabilizers - groupID 59 </span> == {| |+ dgmEffectsInfo - groupID 40 - Shield Boosters | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 89 | 51 | 204 | 2005 | 2004 | 1503 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;55&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 92 | 64 | 64 | 2005 | 2004 | 1503 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;55&quot; | 1701 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 40 - Shield Boosters | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 89 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 92 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Shield_Power_Relays_-_groupID_57" class="mw-headline"> Shield Power Relays - groupID 57 </span> == {| |+ dgmEffectsInfo - groupID 40 - Shield Boosters | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 50 | 479 | 134 | 2005 | 2004 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 51 | 55 | 144 | 2005 | 2004 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 56 | 11 | 145 | 2005 | 2004 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 57 | 263 | 156 | 2005 | 2004 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;&quot; | 1700 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 58 | 482 | 147 | 2005 | 2004 | 1501 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;&quot; | 1700 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 40 - Shield Boosters | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 50 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 51 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 56 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 57 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 58 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |} == <span id="Tracking_Enhancers_-_groupID_211" class="mw-headline"> Tracking Enhancers - groupID 211 </span> == {| |+ dgmEffectsInfo - groupID 211 - Tracking Enhancers | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3655 | 54 | 351 | 2012 | 2013 | 1503 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;53,54,55,74&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 3656 | 160 | 767 | 2012 | 2013 | 1503 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;53,55,74&quot; | 1701 | | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 4527 | 158 | 349 | 2012 | 2013 | 1503 | 1301 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 1600 | 1400 | &quot;53,55,74&quot; | 1701 | | | |- | | | | | | | | |} <br /> {| |+ dgmEffectsActions - groupID 211 - Tracking Enhancers | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3655 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 3656 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 4527 | 1102 | 0 | 0 | |- | | | | | | |- | | | | | | |} </div> 10e42d6600b6c7a5cbad1ab5f9e0a170c54ad724 Old Wiki:ModuleManager Conversations with Luck 0 109 135 2021-04-03T14:28:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Conversations with Luck on Module Manager design: = <span id="PART_I" class="mw-headline"> PART I </span> = <pre>11:15 Aknor|working ah, so we need to supply a crateID 11:15 Aknor|working so, we do not use item-&gt;Move() 11:15 Almamu yes 11:15 Aknor|working it is insufficient 11:15 Aknor|working we need to make a new function for contracts that handles this stuff 11:15 Aknor|working hmmmm 11:15 Almamu the problem is, how can i create a &quot;crate&quot; and what type is it ? 11:15 Almamu hmmmm 11:16 Almamu wait a sec, i will search in the db for something related 11:16 Aknor|working it's an object... it's not a game object 11:17 Aknor|working something behind the scenes 11:17 Aknor|working it is not in invTypes 11:17 Aknor|working its not like a ship or cargo container 11:17 Aknor|working they do the same thing for trades 11:17 Aknor|working there is a tradeContainerID i think 11:17 Aknor|working this is gonna take us some work to make this work right 11:18 Almamu the stations are like &quot;items&quot; at the entity table, why not handle crates like them ? 11:18 Aknor|working well.... since i haven't seen the whole progression of packets from the start of creating one, adding items to it, and then finishing it... i'm not sure what to do at this point 11:19 Aknor|working well, yeah, we can... put &quot;crates&quot; in the entity table 11:19 Almamu and the items can have locationID = crateID 11:19 Aknor|working and then they have their own ID, so we have a crateID, then we change locationID for all items in the contract to that crateID 11:19 Almamu so i can delete one more table from the DB( contract_items ) 11:19 Aknor|working but, there is way more... we need to send that packet instead of that OnItemChange packet that gets sent when you do Move() 11:19 Aknor|working i would say so... did you add that? 11:19 Almamu maybe its cause the new client 11:20 Almamu let me search for OnItemChange 11:20 Almamu on the capture 11:20 *** Code_Red joined #evemu 11:20 +++ ChanServ has given op to Code_Red 11:20 Aknor|working i have no idea if its because of the new client... i've never seen packet logs of contracts stuff for apoc, so... idk 11:20 Aknor|working o/ Code_Red 11:20 Code_Red \o 11:20 Almamu hey! 11:20 Almamu ok, OnItemChange is not in the packet 11:20 Almamu so it will be cause the client version 11:21 Almamu or something 11:21 Code_Red so whats new 11:21 Almamu trying to work in contracts system 11:21 Almamu *on 11:21 Code_Red kewl 11:21 Aknor|working yeah... this is getting pretty complicated, Almamu 11:22 Almamu yeah, i know 11:22 Aknor|working we still need a contract class, contract manager class 11:22 Almamu and maybe some caching for them too 11:23 Almamu if the contract list is too big it will take a while for the server to fetch it -.-&quot; 11:23 Aknor|working and then when you make a contract, it makes a new contract class object, makes a new contractID, a new crateID, then when you start adding things to the contract, the right stuff happens, moves items to that container from your station items, then sends that right packet to the client with the new crateID and contractID 11:23 Aknor|working yeah 11:23 Aknor|working um, dont worry about caching... 11:23 Aknor|working why caching? 11:24 Aknor|working oh, i see why... right 11:24 Aknor|working but we dont have that now, so dont worry about it 11:24 Almamu ok 11:24 Aknor|working we dont have caching of the market either, but it is also very inefficient packing the sql query, so, that's not of our concern right now 11:25 Aknor|working this is educational, not like we're trying to make a server that serves 100's or 1000's or more... c'mon 11:25 Aknor|working we'll make a cache later to learn about cache systems and stuff 11:25 Almamu thats what i was trying to talk about 11:25 Aknor|working ok 11:26 Aknor|working man.... we have some bubble/warping issues... we have contract work going on.... we need to work on module manager.... 11:26 Almamu -.-&quot; 11:27 Almamu the next time i will try to fix something that is already here 11:27 Almamu xD 11:27 Aknor|working hmm... well, i gotta fix the warping/bubble stuff first, then decide whether to work on module manager or help you with contracts 11:27 Aknor|working hahaha 11:27 Aknor|working yeah 11:27 Almamu module manager would be better 11:27 Aknor|working well, it will take longer than contracts i bet 11:27 Almamu woking on* 11:27 Aknor|working contracts might only be a couple weeks 11:28 Aknor|working and luck and captnoord are kinda inactive right now, even though luck has popped back in 11:28 Aknor|working i really dont wanna work on the MM without both of them 11:28 Almamu xD 11:29 Aknor|working sooooo..... let's do contracts, and then let's take a look at private trades 11:29 *** Luck joined #evemu 11:29 +++ ChanServ has given op to Luck 11:29 Aknor|working O.O 11:29 Luck oh hi 11:29 Almamu hey! 11:29 Aknor|working Code_Red, stop fooling around 11:29 Luck lol 11:29 Almamu xDDDD 11:29 Code_Red hiya luck 11:29 Aknor|working right..... 11:29 Luck hey man 11:29 Luck quick question aknor 11:30 Luck you did your attribute patch against 1049 right? 11:30 Aknor|working ok, &quot;Luck&quot;, what chemicals did you mention to me the other night? 11:30 Luck hf and h2so4 11:30 Code_Red he thinks your me kev LOLOLOL 11:30 Luck :p 11:30 Aknor|working hears ChanServ announce &quot;Luck Identity Confirmed&quot; 11:30 Code_Red noob manuver 11:30 Aknor|working ok 11:30 Luck lol 11:30 Luck anyways 11:30 Luck you did your patch against 1049 right? 11:30 Aknor|working dude, there's been soooooo many impersonators of Luck in here.... 11:30 Aknor|working ok, yeah 11:31 Luck hmm 11:31 Aknor|working trying to remember what that was... Celestial stuff? 11:31 Luck the attribute merge 11:31 Code_Red i haven't impersonated luck ever 11:31 Aknor|working wait... what patch? 11:31 Luck http://forum.evemu.org/viewtopic.php?f=8&amp;t=507 11:31 Aknor|working attribute merge is already committed 11:31 Luck ah 11:31 Luck i didn't see that it was committed 11:31 Luck my fault 11:31 Luck that would explain a lot 11:32 Luck :p 11:32 Aknor|working HAHAHAHAHAHA 11:32 Aknor|working ok, i see i said r1049, but we're on r1078 now 11:32 Luck yea 11:32 Luck that's why i was a little confused 11:32 Aknor|working and it pretty much works dude! 11:32 Luck it was also 4 am 11:32 Aknor|working LMAO 11:32 Luck so that might have had something to do with it too 11:32 Code_Red continues his minecraft 11:32 Luck :) 11:32 Luck okay then 11:32 Aknor|working i was sleeping in my computer chair at 4am 11:32 Aknor|working &gt;_&gt; 11:33 Almamu O.o 11:33 Luck so i can just checkout and program for the mm then 11:33 Luck cool 11:33 Luck makes my life easier 11:33 Aknor|working yep 11:33 Aknor|working OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 11:33 Aknor|working he said MM !!!! 11:33 Luck yes i did 11:33 Almamu lol 11:33 Aknor|working HE SAID MM !!!!!!!! 11:33 Luck :) 11:33 Luck no promises 11:33 Almamu aknor, youre crazy! 11:33 Almamu xD 11:33 Aknor|working so, you have a newer version than what's in SVN now? 11:33 Aknor|working cuz i re-enabled some stuff that captnoord had disabled in his attribute branch 11:34 Aknor|working just to try stuff out 11:34 Luck not that will work with the new attribute system 11:34 Aknor|working this morning, i fitted a microwarpdrive and a pulse laser and a cloaking device to an Ashimmu and undocked 11:34 Luck i'm probably just gonna start from scratch 11:34 Luck nice 11:34 Aknor|working i got a couple exceptions from the client when i fitted the laser 11:34 Aknor|working the ship did not disappear after undocking 11:34 Luck did your ship go invisible? 11:34 Luck really? 11:34 Aknor|working however, it DID disappear when i re-docked 11:34 Aknor|working XD 11:34 Luck ah 11:34 Aknor|working you'll see the client exceptions 11:34 Almamu xD 11:34 Aknor|working one was about turrets 11:35 Luck yea 11:35 Luck yep 11:35 Luck that's the old one 11:35 Code_Red hates creepers 11:35 Aknor|working see, i can help code up features on the server side, but i really have ZERO clue what kinds of packets and info need to go back to the clients when stuff gets changed on the fitting or module usage 11:35 Aknor|working oh ok 11:37 Luck yea 11:37 Luck there's some update that needs to be sent to the client 11:37 Luck to tell it to update the render of the ship 11:37 Luck but it's not being sent 11:37 Luck so it stops rendering the ship 11:37 Luck at least that's what I think happenes 11:37 Luck *happens 11:38 Aknor|working ok... well, i've been thinking about the client, mm, ship, modules OOD.... 11:38 Luck :) 11:38 Code_Red bobs head in TS 11:38 Aknor|working it makes sense now that the MM is owned by the client, not the ship 11:38 Aknor|working but the MM should have a direct reference to whatever ship it is &quot;managing&quot; 11:38 *** Code_Red is now known as Code_Red|TS3 11:38 Luck cool 11:39 Luck that was what I was thinking 11:39 Aknor|working but the ship owns the modules, not the module manager 11:39 Aknor|working the module manager needs access to them but does not own them 11:39 Luck yea 11:39 Aknor|working the existing MM i've seen has its own containers for modules 11:40 Luck yea 11:40 Aknor|working actually, i've been thinking we'd want std::map&lt;&gt; not std::vector&lt;&gt; containers, and separate ones for low, medium, high, rig, and subsystems 11:40 Luck so we need to rewrite ship, and the mm 11:40 Luck yea 11:40 Luck probably a good idea 11:40 Luck separating them makes sense 11:40 Aknor|working so, we should put those containers into the Ship class then provide functions on the Ship class that fit/unfit modules 11:41 Luck yea 11:41 Aknor|working and also Get module references so we can then Activate, Deactivate, Reload/Unload charges 11:41 Aknor|working see, each module should also be an object 11:41 Luck i feel like the fit/unfit should go though the mm 11:41 Aknor|working ShipModule base class 11:41 Aknor|working then derive ActiveModule and PassiveModule and SubsystemModule 11:42 Luck yea 11:42 Aknor|working then derive ArmorRepairerModule from ActiveModule, HullUpgradeModule from PassiveModule 11:42 Luck yea 11:43 Aknor|working they inherit proper routines like Activate() or Deactivate() that would only come from ActiveModule, but not from PassiveModule 11:43 Aknor|working Subsystems are more complicated because they actually modify the slot configuration 11:43 Aknor|working THAT should be managed INSIDE the ship object 11:43 Aknor|working this is too funny... i'm making a lot of sense now and all this is just coalescing right now, actually XD 11:43 Luck yea 11:43 Luck probably 11:43 Luck :) 11:44 Aknor|working :D 11:44 Mobbel hey luck 11:44 Luck so which part do you want to write? 11:44 Luck :p 11:44 Aknor|working hmm.... 11:44 Luck hey mobbel 11:44 Mobbel how are you??? 11:44 Luck pretty good man 11:44 Aknor|working how about i start modifying the Ship class to contain the module containers 11:44 Luck done with school for the semester 11:44 Luck taking a break 11:44 Luck kk 11:45 Luck i will look at reworking the mm class 11:45 Aknor|working ok 11:45 Aknor|working i think we need a separate Modules.h/.cpp file set 11:45 Aknor|working to pull ShipModule and other stuff OUT of ModuleManager.h/.cpp 11:46 Aknor|working ok, and i'll pull a lot of stuff out of ShipModule and make that the abstract base class 11:46 Luck kk 11:46 Aknor|working and start deriving the different module child classes off that 11:46 Luck i'm basically trashing the mm as it exists in 1078 11:46 Aknor|working HAHA, ok 11:46 Luck since most of it is redundant/in the wrong place 11:47 Mobbel looks like luck is back for doing great things :D 11:48 Aknor|working ok, so here's my list: 11:48 Aknor|working 1) expand Ship class to contain module containers, module reference Get(module_slot_flag), FitModule(), UnfitModule(), RigInstall(), RigRemove(), SubSystemInstall(), SubSystemRemove() 11:48 Aknor|working i'll leave those mostly empty for now 11:49 Aknor|working 2) move ShipModule into Modules.h/.cpp, clean it out, make it abstract, and start deriving child classes for the various specific modules we need 11:49 Luck yea 11:49 Aknor|working that will allow us to do polymorphism on ship-&gt;GetModule(slot_flag)-&gt;Activate() 11:50 Luck atm i have an empty ShipModule class and an empty ModuleManager class 11:50 Aknor|working and it will just work 11:50 Aknor|working :D 11:50 Aknor|working k 11:50 Luck yea 11:50 Luck thank god 11:50 Luck so lets see 11:50 Luck the constructor for the module manager 11:50 Luck should get a reference from the client 11:50 Aknor|working for the ship, yeah 11:50 Aknor|working AND the client 11:51 Aknor|working that's the thing that had me frustrated 11:51 Aknor|working you reference all the way down to these lower objects and then you need info from one of the higher ones, but there's no reference BACK 11:51 Aknor|working client-&gt;Destiny()-&gt;GotoDirection() and then you're inside DestinyManager with NO access to the Client object, LOL 11:51 Luck lol 11:51 Luck wonderful 11:52 Aknor|working but, that might be because not all the info needed by DestinyManager() was provided... idk 11:52 Aknor|working anyway, got a meeting, talk to you chaps later 11:52 Luck kk</pre> <br /> = <span id="PART_II" class="mw-headline"> PART II </span> = <pre>[13:47] &lt;+Luck&gt; okay aknor [13:47] &lt;+Luck&gt; so [13:47] &lt;+Luck&gt; base classes [13:47] &lt;+Luck&gt; module, subsystem [13:48] &lt;+Luck&gt; h/o [13:48] &lt;+Luck&gt; im gonna draw it up [13:48] &lt;+Luck&gt; i have to to get it in my head :p [13:48] &lt;+Aknor&gt; oh hey [13:48] &lt;+Luck&gt; figured we could talk in here [13:49] &lt;+Luck&gt; since it will be less busy or w/e [13:57] &lt;+Nick&gt; r1079 on linux x64 doesn't build Aknor [13:57] &lt;+Aknor&gt; heh, &quot;less&quot; busy... but, i cant talk much anymore for a while.. .got stuff to do [13:57] &lt;+Nick&gt; http://pastebin.com/LT5zbkHm [13:57] &lt;+Aknor&gt; i'll be back tonight i think [13:57] &lt;+Luck&gt; kk [13:57] &lt;+Luck&gt; im gonna work on some of the modules then [13:57] &lt;+Nick&gt; is the tonight op still in place? [13:57] &lt;+Aknor&gt; i'm planning on it... we'll see [13:58] &lt;+Aknor&gt; each time is play by ear [13:58] &lt;+Nick&gt; it'll be 4 am for me [13:58] &lt;+Nick&gt; i need to know :)) [13:58] &lt;+Aknor&gt; haha, you dont have to [13:58] &lt;+Aknor&gt; just sleep man [13:58] &lt;+Aknor&gt; idk why evilnumber won't build [13:58] &lt;+Nick&gt; well if it is on i'll be there [13:58] &lt;+Aknor&gt; on linux 64 [13:59] &lt;+Aknor&gt; so, luck, before i go, you understand the whole deal with that proposed architecture? [13:59] &lt;+Luck&gt; yea [13:59] &lt;+Luck&gt; i believe so [13:59] &lt;+Aknor&gt; how all the attribute mods are done deep in the module classes themselves [13:59] &lt;+Luck&gt; yea [13:59] &lt;+Aknor&gt; keeps everything separate so the &quot;real&quot; knowledge of what effects mod what attributes is hidden in each module group class [14:00] &lt;+Luck&gt; yea [14:00] &lt;+Aknor&gt; so, we need to pass a copy of ship attributes down into the module class calls along with the character skills [14:01] &lt;+Aknor&gt; oh... just realized... how about if the ModuleManager figures out if online/activate/load charge/fit module can even happen BEFORE those functions are called on the actual module classes? [14:02] &lt;+Luck&gt; yea [14:02] &lt;+Aknor&gt; then we dont need those ConfirmFitModule etc calls [14:02] &lt;+Aknor&gt; that seemed ugly to me [14:02] &lt;+Luck&gt; i wasn't sure where you were going with those anyways [14:02] &lt;+Luck&gt; :p [14:02] &lt;+Aknor&gt; well, i just talked myself back into it again [14:02] &lt;+Aknor&gt; how does the MM know if a module CAN be onlined? [14:03] &lt;+Aknor&gt; only the module knows that info [14:03] &lt;+Aknor&gt; cpu load/power load/capacitor need/ etc [14:03] &lt;+Aknor&gt; unless we breakout just that stuff up into the MM [14:03] &lt;+Luck&gt; the mm has access to the ship attributes and the module attributes? [14:03] &lt;+Luck&gt; or just the ship [14:03] &lt;+Aknor&gt; the rest, like effect specific mods go on only inside the module class [14:04] &lt;+Luck&gt; well the mm needs info on the module itself [14:04] &lt;+Aknor&gt; mmmm [14:04] &lt;+Luck&gt; so it can check skills and such [14:04] &lt;+Aknor&gt; well, but the modules themselves know about what skills are needed [14:04] &lt;+Luck&gt; hmm [14:04] &lt;+Aknor&gt; so we get a DogmaIMBound::Handle_Activate() call [14:05] &lt;+Aknor&gt; it calls client-&gt;ModuleManager()-&gt;ActivateModule(moduleID) [14:06] &lt;+Aknor&gt; which, calls m_shipRef-&gt;GetModule(moduleID)-&gt;Activate(charSkillList, shipAttribList, &amp;externalAction) [14:06] &lt;+Aknor&gt; hmm [14:07] &lt;+Aknor&gt; yeah, there seems to be some things that we just cant take out of the MM [14:07] &lt;+Luck&gt; i feel like the mm should check skills/pg/cpu [14:07] &lt;+Aknor&gt; i'm trying to find a way to keep the MM from becoming this giant super class that has all knowledge of all things and does all things to every thing [14:07] &lt;+Aknor&gt; hmmm, sounds like that would be right [14:08] &lt;+Luck&gt; lol [14:08] &lt;+Luck&gt; it is going to need access to the character, the ship and the module [14:08] &lt;+Luck&gt; pretty much any way you do it [14:08] &lt;+Aknor&gt; right [14:08] &lt;+Luck&gt; unless each of the modules become superclasses that have like 8 arguments [14:08] &lt;+Luck&gt; :p [14:08] &lt;+Aknor&gt; access to module goes through the new Ship::GetModule(uint32 moduleFlag) that i will write [14:09] &lt;+Luck&gt; you'll need more than a access by flag [14:09] &lt;+Aknor&gt; pulls the module from the right container and returns the ShipModuleRef [14:09] &lt;+Luck&gt; you need access by itemID [14:09] &lt;+Aknor&gt; nope [14:09] &lt;+Luck&gt; yes [14:09] &lt;+Aknor&gt; there is a unique flag for every low slot, medium slot, and high slot, rig slot and subsystem slot, i think [14:09] &lt;+Luck&gt; the client sends a itemID packet to reference a module [14:09] &lt;+Luck&gt; when it's activated [14:09] &lt;+Luck&gt; so there has to be a bridge between the itemID and the module [14:10] &lt;+Aknor&gt; well...ok, then we just do m_shipRef-&gt;GetModule(moduleItemID), and that returns a ShipModuleRef [14:10] &lt;+Luck&gt; yea [14:10] &lt;+Luck&gt; that's fine [14:10] &lt;+Luck&gt; im just saying that in order to handle the packet we have to have a way to look up by id [14:10] &lt;+Aknor&gt; that, through polymorphism calls the right specific derived class functions [14:11] &lt;+Aknor&gt; yeah the other way would have required using the itemID to get the flag and then using the flag in that GetModule() function [14:11] &lt;+Luck&gt; yea [14:11] &lt;+Aknor&gt; would work either way because i was planning on making the five std::map&lt;&gt; containers using the flag as the key, not itemID [14:12] &lt;+Luck&gt; that's fine [14:12] &lt;+Luck&gt; and probably easier to understand [14:12] &lt;+Aknor&gt; this is why: how do you know which itemID of the module adjacent to the one you just overloaded and is causing heat damage to the adjacent modules? [14:12] &lt;+Aknor&gt; you dont.. all you know is the itemID and flag of the module you just overloaded [14:13] &lt;+Luck&gt; m_ShipRef-&gt;GetModuleByItemID(itemID)-&gt;GetFlag() [14:13] &lt;+Aknor&gt; so when the m_ship-&gt;GetModule(moduleItemID)-&gt;Overload() function modifies its externalAction class object [14:13] &lt;+Luck&gt; hmm [14:13] &lt;+Luck&gt; overloading is gonna be a bitch [14:14] &lt;+Aknor&gt; nah [14:14] &lt;+Aknor&gt; when the externalAction class has overload damage asserted in it, we just apply it to the adjacent modules [14:15] &lt;+Aknor&gt; using this: m_shipRef-&gt;GetModule(moduleFlag +/- 1)-&gt;OverloadDamage(blah) [14:15] &lt;+Aknor&gt; or something like that [14:15] &lt;+Aknor&gt; so if the only way you can access a module via the Ship::GetModule() function is by 'flag' instead of itemID , then this makes accessing the right slot easier [14:15] &lt;+Aknor&gt; we can easily get the flag of the module we're working with from the itemID [14:16] &lt;+Aknor&gt; it just fits... would be more clunky if we had containers for the modules where the keys were itemIDs instead of flags [14:16] &lt;+Luck&gt; yea [14:16] &lt;+Aknor&gt; then ya gotta iterate through each module in the container looking for the right flags [14:17] &lt;+Aknor&gt; in paket_types.h there are flags for every unique slot [14:17] &lt;+Aknor&gt; so that will work [14:17] &lt;+Luck&gt; sounds fine to me [14:17] &lt;+Luck&gt; i was just pointing out that we needed a search by itemID function [14:17] &lt;+Luck&gt; :) [14:17] &lt;+Aknor&gt; we can even have Ship::FitModule(moduleID) that returns 0 or 1 based on whether the slot was occupied [14:18] &lt;+Aknor&gt; oh.. gotta pass the flag in as well [14:18] &lt;+Aknor&gt; but, then it's already part of the InventoryItem of that module [14:18] &lt;+Aknor&gt; hmmm [14:18] &lt;+Aknor&gt; i've used the GetItem from ItemFactory [14:18] &lt;+Aknor&gt; but that might be too inefficient [14:18] &lt;+Aknor&gt; i dont think there is any other way [14:19] &lt;+Aknor&gt; except query the DB [14:19] &lt;+Aknor&gt; does this already exist? m_ShipRef-&gt;GetModuleByItemID(itemID)-&gt;GetFlag() [14:19] &lt;+Luck&gt; i believe so [14:21] &lt;+Aknor&gt; nope. nowhere in the source [14:21] &lt;+Luck&gt; hmm [14:22] &lt;+Aknor&gt; ItemFactory: InventoryItemRef GetItem(uint32 itemID); [14:23] &lt;+Aknor&gt; ItemFactory is a singleton for the entire server [14:23] &lt;+Luck&gt; lol [14:23] &lt;+Aknor&gt; it holds a std::map&lt;uint32, InventoryItemRef&gt; [14:23] &lt;+Aknor&gt; THAT has EVERY item ever created in the entire game universe [14:23] &lt;+Aknor&gt; and THAT is how ALL items are &quot;found&quot; throughout the server code, so far as i can tell [14:24] &lt;+Luck&gt; lol [14:24] &lt;+Aknor&gt; so, InventoryItemRef GetItem(uint32 itemID) just does m_items.find( itemID ) [14:24] &lt;+Luck&gt; i can see that getting pretty bogged down [14:24] &lt;+Aknor&gt; m_items is the private std::map&lt;uint32, InventoryItemRef&gt; container [14:24] &lt;+Aknor&gt; well, i have no idea how to do it better [14:24] &lt;+Aknor&gt; distributed containers? [14:24] &lt;+Aknor&gt; idk [14:25] &lt;+Luck&gt; multi-thred it [14:25] &lt;+Aknor&gt; yeah [14:25] &lt;+Luck&gt; more than 1 container [14:25] &lt;+Aknor&gt; eve-server is single thread single process [14:25] &lt;+Luck&gt; more memory usage [14:25] &lt;+Aknor&gt; yeah [14:25] &lt;+Luck&gt; much faster execution [14:25] &lt;+Aknor&gt; yeha [14:25] &lt;+Luck&gt; w/e [14:25] &lt;+Luck&gt; it's not a big deal now [14:25] &lt;+Aknor&gt; well, cant fix that now... ha, yeah [14:25] &lt;+Luck&gt; lol [14:26] &lt;+Aknor&gt; so... almost every major class has access to the singleton ItemFactory object somehow, so all it does is m_factory-&gt;GetItem(itemID)-&gt;GetFlag() [14:26] &lt;+Aknor&gt; boom, got the item flag [14:27] &lt;+Aknor&gt; ah, it's just &quot;flag()&quot; not &quot;GetFlag()&quot; [14:27] &lt;+Luck&gt; :) [14:27] &lt;+Aknor&gt; so, what do you think so far? Ship class gets some new functions to fit/unfit modules, provide a way to get the pointer to module classes by flag... [14:28] &lt;+Luck&gt; yep [14:28] &lt;+Aknor&gt; then the rest is done on the module classes themselves with their methods [14:28] &lt;+Aknor&gt; all inside the MM [14:28] &lt;+Luck&gt; do you agree with the mm checking skills? [14:28] &lt;+Aknor&gt; so, then the MM will check cpu/power grid, right? [14:28] &lt;+Luck&gt; or do you think that should be done inside the modules themselves [14:28] &lt;+Aknor&gt; cpu/power grid, definitely [14:28] &lt;+Luck&gt; what about skills though? [14:28] &lt;+Aknor&gt; so that leaves skills, right? nothing else to check? [14:28] &lt;+Luck&gt; yea [14:29] &lt;+Luck&gt; pg/cpu/skills [14:29] &lt;+Luck&gt; oh [14:29] &lt;+Aknor&gt; ok, so what skills and check them for what exactly? [14:29] &lt;+Luck&gt; actually [14:29] &lt;+Luck&gt; it has to check certain ship attributes as well [14:29] &lt;+Aknor&gt; hmmm, well [14:29] &lt;+Luck&gt; i did some of this in the old mm [14:29] &lt;+Luck&gt; basically it has to check spaceship command skills [14:29] &lt;+Aknor&gt; like i asked, for what reasons exactly do you think the MM needs to check things like skills and some ship attributes? [14:29] &lt;+Luck&gt; and gunnery skills [14:30] &lt;+Aknor&gt; to determine what exactly? [14:30] &lt;+Luck&gt; because it seems weird [14:30] &lt;+Aknor&gt; whether they can even be fitted? [14:30] &lt;+Luck&gt; to split up the fit checks [14:30] &lt;+Luck&gt; between the mm and the modules themselves [14:30] &lt;+Luck&gt; yes [14:30] &lt;+Luck&gt; because otherwise you have a situation where you have the pg and cpu to fit it [14:30] &lt;+Luck&gt; so the module manager fits it [14:30] &lt;+Luck&gt; then the module says NOPE from the skils [14:30] &lt;+Luck&gt; so it unfits it [14:30] &lt;+Aknor&gt; hmmm [14:31] &lt;+Luck&gt; it seems odd to me to split up the checks [14:31] &lt;+Luck&gt; mm does checks [14:31] &lt;+Luck&gt; modules do effects [14:31] &lt;+Luck&gt; makes more sense to me [14:31] &lt;+Aknor&gt; but you know that it requires knowledge of specific needs and requirements of modules to be embedded in the MM itself [14:31] &lt;+Luck&gt; if you have a ShipRef you already have all of that [14:31] &lt;+Aknor&gt; so each time we add a module group, you gotta add more specific knowlege of how that module is used to the MM [14:31] &lt;+Luck&gt; you need a ShipRef and a ClientRef [14:32] &lt;+Luck&gt; ShipRef gives you ModuleRef which gives you it's attributes [14:32] &lt;+Luck&gt; you need the ShipRef for the cpu and pg [14:32] &lt;+Luck&gt; so you already have a ptr to the modules [14:33] &lt;+Aknor&gt; right [14:34] &lt;+Luck&gt; idk does that make sense? [14:34] &lt;+Aknor&gt; but you see what i mean about specific knowledge of modules having to be in the MM? [14:34] &lt;+Aknor&gt; if we had a ValidateOnline() function for each module [14:34] &lt;+Aknor&gt; that could do all the checks [14:34] &lt;+Luck&gt; so pg/cpu/skills [14:34] &lt;+Luck&gt; all inside the module [14:35] &lt;+Aknor&gt; because each module knows what skills, ship attributes, etc are required to fit/online/overload/ etc [14:35] &lt;+Aknor&gt; sounds crazy i know [14:35] &lt;+Luck&gt; yea [14:35] &lt;+Luck&gt; lol [14:35] &lt;+Luck&gt; no it doesn't [14:35] &lt;+Aknor&gt; well, otherwise, i think the MM becomes some super class [14:35] &lt;+Luck&gt; so what your suggesting is that the module manaager really is only an barebones interface [14:35] &lt;+Aknor&gt; hehehehe, almost like the modules manage themselves, eh? [14:36] &lt;+Luck&gt; between the ship modules and the client class [14:36] &lt;+Luck&gt; lol [14:36] &lt;+Aknor&gt; HA, but not really [14:36] &lt;+Luck&gt; yea [14:36] &lt;+Luck&gt; no that makes sense [14:36] &lt;+Luck&gt; okay [14:36] &lt;+Luck&gt; im with you on this [14:36] &lt;+Luck&gt; that makes sense [14:36] &lt;+Aknor&gt; well, the MM would still take the results of the ValidateXXX() calls and make decisions [14:36] &lt;+Luck&gt; yea [14:37] &lt;+Luck&gt; kk [14:37] &lt;+Aknor&gt; it would take the modified externalAction class object that has the overload info, target effect info, whatever, and act on that [14:37] &lt;+Luck&gt; yea [14:38] &lt;+Aknor&gt; ok, well i gotta go.. this was good discussion.... hope ya dont think i'm trying to take over around here &gt;_&gt; [14:38] &lt;+Luck&gt; lol [14:38] &lt;+Luck&gt; i don't [14:38] &lt;+Luck&gt; and even if you were [14:38] &lt;+Luck&gt; i'd be more happy that things were getting done [14:38] &lt;+Aknor&gt; LOL [14:39] &lt;+Aknor&gt; well, so just think about this stuff i proposed some more.. see if it makes sense and in the meantime i'll start working on the Ship class, adding the std::map containers, the GetModule(flag) function, FitModule(moduleID), UnfitModule(moduleID), same for rigs and subsystems [14:40] &lt;+Aknor&gt; by then we'll have had more discussion and brainstorming [14:40] &lt;+Luck&gt; lol [14:40] &lt;+Luck&gt; sounds good [14:40] &lt;+Aknor&gt; ok, cool [14:41] &lt;+Aknor&gt; as you most likely know way more than i do about the packets for all this module stuff (i know zilch), maybe you could handle that stuff? [14:41] &lt;+Aknor&gt; and then i'm sure as we're integrating this stuff and actually trying to use it, i'll be examining the packets myself and learning how that part of it works [14:41] &lt;+Luck&gt; yea [14:41] &lt;+Luck&gt; there aren't that many we have to worry about [14:42] &lt;+Luck&gt; most of the packets are for graphics stuff [14:42] &lt;+Aknor&gt; for instance, how does the client handle packets for grouped modules? [14:42] &lt;+Luck&gt; well that I haven't looked at yet [14:42] &lt;+Aknor&gt; one packet sent if you activate the group? [14:42] &lt;+Luck&gt; since i never had any info on it [14:42] &lt;+Aknor&gt; haha [14:42] &lt;+Aknor&gt; so, the MM might need to retain some info about module 'groups' [14:42] &lt;+Luck&gt; possibly [14:42] &lt;+Aknor&gt; then inside the MM, it makes the iterative calls to all the modules in that group [14:43] &lt;+Aknor&gt; unless the client just sends rapid-fire activate packets for all modules in the group, OR it attaches all the itemIDs of the modules in the group inside the activate packet [14:43] &lt;+Aknor&gt; bah... we'll figure it out [14:43] &lt;+Luck&gt; yea [14:43] &lt;+Aknor&gt; anyway. got to go, so i'll talk to you later dude [14:43] &lt;+Luck&gt; it could just expand the tuple [14:43] &lt;+Luck&gt; k [14:44] &lt;+Aknor&gt; yeah [14:44] &lt;+Luck&gt; ttyl man [14:44] &lt;+Aknor&gt; ok [14:44] -&gt;&gt; You are now known as Aknor|afk</pre> <br /> = <span id="PART_III" class="mw-headline"> PART III </span> = <pre>[00:15] &lt;+oza&gt; hey hey Luck [00:15] &lt;@Luck&gt; hey [00:15] &lt;@Luck&gt; what's up [00:15] &lt;+oza&gt; just been logging with aknor [00:15] &lt;+Aknor&gt; hey [00:15] &lt;@Luck&gt; hey [00:15] &lt;+Aknor&gt; logging buy/sell orders [00:15] &lt;+oza&gt; apart from that tring to get a stupid local vm fixed [00:16] &lt;@Luck&gt; lol [00:16] &lt;@Luck&gt; less log more code :p [00:16] &lt;@Luck&gt; jk [00:16] &lt;+oza&gt; lol [00:16] &lt;+oza&gt; less chat more code [00:16] &lt;@Luck&gt; lol [00:16] * oza whips luck [00:16] &lt;@Luck&gt; :( [00:16] &lt;+oza&gt; :P [00:16] &lt;@Luck&gt; lol [00:17] &lt;@Luck&gt; aknor any progress on the ship modules? [00:17] &lt;+Aknor&gt; nah [00:17] &lt;@Luck&gt; lol [00:17] &lt;+Aknor&gt; haven't worked on them at all [00:17] &lt;@Luck&gt; ... [00:17] &lt;+Aknor&gt; today was mother's day so was away all day [00:17] &lt;@Luck&gt; ah [00:17] &lt;+Aknor&gt; yesterday had stuff to do [00:17] &lt;@Luck&gt; i understand being busy :p [00:18] &lt;+Aknor&gt; i'll be doing some writing of that stuff soon :) [00:18] &lt;+Aknor&gt; you waiting on them? [00:18] &lt;@Luck&gt; well [00:18] &lt;@Luck&gt; somewhat [00:18] &lt;+Aknor&gt; hahah [00:18] &lt;@Luck&gt; i want to see what your base class looks like [00:18] &lt;+Aknor&gt; ah [00:18] &lt;@Luck&gt; so i can A) derive more of the 138 [00:18] &lt;+Aknor&gt; ooooo [00:18] &lt;@Luck&gt; and B) work on the mm [00:18] &lt;+Aknor&gt; ok [00:19] &lt;+oza&gt; 138? [00:19] &lt;@Luck&gt; 138 module types [00:19] &lt;+Aknor&gt; LOL [00:19] &lt;+Aknor&gt; not types, groups [00:19] &lt;+oza&gt; 0.0 [00:19] &lt;@Luck&gt; well [00:19] &lt;@Luck&gt; yea [00:19] &lt;@Luck&gt; oh [00:19] &lt;@Luck&gt; and [00:19] &lt;@Luck&gt; one more thing that's gonna make our life a little bit more of a pain in the ass [00:19] &lt;+Aknor&gt; \o/ [00:19] &lt;+oza&gt; WAIT FOR IT [00:19] &lt;@Luck&gt; we may have to include a gfx function in the derived classes [00:19] &lt;@Luck&gt; as some of them are different [00:19] &lt;@Luck&gt; *very different [00:19] &lt;+Aknor&gt; what does that do? [00:19] &lt;@Luck&gt; to send the correct graphics packets [00:20] &lt;+Aknor&gt; send a gfx packet to the client(s) ? [00:20] &lt;@Luck&gt; tell it what type of graphics to display [00:20] &lt;+oza&gt; wouldn't it jsut be an id [00:20] &lt;+Aknor&gt; ok [00:20] &lt;@Luck&gt; for something like turrets yes [00:20] &lt;@Luck&gt; but it may get a little screwy with boosters and shields and such [00:20] &lt;+Aknor&gt; only active modules have that gfx function yeah? [00:20] &lt;@Luck&gt; yes [00:20] &lt;@Luck&gt; and they don't vary much between the major types of modules [00:21] &lt;+Aknor&gt; ok, so that would be virtual void SendGraphicsPacket() = 0; [00:21] &lt;+Aknor&gt; in the ActiveModules class [00:21] &lt;@Luck&gt; something like that yea [00:21] &lt;+Aknor&gt; then all of the active modules inherit it and then have to implement it on their own [00:21] &lt;@Luck&gt; yea [00:21] &lt;+Aknor&gt; and that would just use one of the Client send packet functions? [00:21] &lt;@Luck&gt; yep [00:21] &lt;+Aknor&gt; ok, so we could do this one of two ways [00:22] &lt;@Luck&gt; you just create the packet, encode it and send it on it's way [00:22] &lt;+Aknor&gt; one, we have this separate SendGraphicsPacket() function in EACH module class [00:22] &lt;+Aknor&gt; OR, the MM does every one of them [00:22] &lt;@Luck&gt; i was just about to suggest that [00:22] &lt;+Aknor&gt; but, i gotta ask, it's module specific info that goes in there? [00:22] &lt;@Luck&gt; what I did before was write a really general one that took a buch of input from the particular module [00:22] &lt;@Luck&gt; umm [00:22] &lt;@Luck&gt; more like group specific [00:23] &lt;+Aknor&gt; ok [00:23] &lt;+Aknor&gt; fair enough [00:23] &lt;@Luck&gt; like laser turrets do laser effects [00:23] &lt;@Luck&gt; etc [00:23] &lt;@Luck&gt; h/o one second [00:23] * Luck searches for table [00:23] &lt;+Aknor&gt; remember that &quot;externalAction&quot; class thingy i suggested that we would create in the MM then pass into the module functions Activate/Online/etc that the module class would modify? [00:23] &lt;+Aknor&gt; we could just put the packet to be sent in there [00:24] &lt;@Luck&gt; yea [00:24] &lt;@Luck&gt; that could work [00:24] &lt;+Aknor&gt; then the MM would just use some CheckForGFXPacketToSend()... returns boolean [00:24] &lt;+Aknor&gt; then sends the packet because the MM has access to Client object, module classes do not [00:24] &lt;+Aknor&gt; so, we get best of both worlds [00:24] &lt;@Luck&gt; yea [00:24] &lt;@Luck&gt; or [00:24] &lt;@Luck&gt; wait [00:24] &lt;+Aknor&gt; module classes make the packet and send it up to MM [00:24] &lt;@Luck&gt; lol [00:24] &lt;@Luck&gt; nvm [00:25] &lt;+Aknor&gt; then MM sends it out using Client object reference [00:25] &lt;@Luck&gt; yea [00:25] &lt;+Aknor&gt; but there's something else here [00:25] &lt;+Aknor&gt; it's not just the client who owns that module that gets these packets right? [00:25] &lt;@Luck&gt; the client doesn't own the module... [00:25] &lt;@Luck&gt; im not sure i understand what you mean [00:26] &lt;+Aknor&gt; ok, ok... i mean the client that owns the ship that owns the module being activated or whatever [00:26] &lt;+oza&gt; wow what a headfuck [00:26] &lt;@Luck&gt; lol [00:26] &lt;@Luck&gt; :p [00:26] &lt;+Aknor&gt; player X activates module Y, right? [00:26] &lt;@Luck&gt; yes [00:26] &lt;+Aknor&gt; MM calles Activate() for module X [00:26] &lt;+Aknor&gt; MM then sees a GFX packet goes out [00:26] &lt;+oza&gt; module Y* [00:26] &lt;@Luck&gt; :) [00:27] &lt;@Luck&gt; yes [00:27] &lt;+Aknor&gt; but player X is in a bubble with players A, B, and C [00:27] &lt;+Aknor&gt; don't all players A, B, C, and X get that gfx packet? [00:27] &lt;@Luck&gt; h/o [00:27] &lt;+Aknor&gt; ok [00:27] &lt;+oza&gt; log and u shall see [00:27] &lt;+Aknor&gt; i know, i know [00:27] &lt;+oza&gt; :P [00:27] &lt;+Aknor&gt; haven't gottn there yet ;) [00:28] &lt;@Luck&gt; i had it working in the old one, just checking the source [00:28] &lt;@Luck&gt; trac seems to be very slow [00:29] &lt;+Aknor&gt; i assumed all clients in the &quot;bubble&quot; need to receive the gfx packet for just one ship activating a module that had an external effect like an armor repairer, so that all clients would &quot;see&quot; the gfx effect [00:29] &lt;+oza&gt; you would think so [00:29] &lt;+oza&gt; or they wouldn't get all effects [00:29] &lt;+Aknor&gt; so, it needs some kind of multicast, but this might already be handled through the bubblemanager [00:30] &lt;@Luck&gt; yea [00:30] &lt;@Luck&gt; i only remember sending a destiny update packet [00:30] &lt;@Luck&gt; and i believe that the destiny manager handled it internally [00:30] &lt;+Aknor&gt; ok, so maybe that is already handling sending the packet to all clients in the bubble and the MM does not need to know HOW to do that [00:30] &lt;@Luck&gt; i don't believe it does [00:30] &lt;@Luck&gt; and in any case [00:30] &lt;@Luck&gt; it shouldn't [00:30] &lt;+Aknor&gt; it just tells the bubblemanager or whatever class does it, then it gets done [00:30] &lt;+Aknor&gt; which is what makes sense [00:30] &lt;@Luck&gt; that should be handled elsewhere [00:31] &lt;@Luck&gt; yea [00:31] &lt;+Aknor&gt; right, encapsulated elsewhere [00:35] &lt;@Luck&gt; ah [00:35] &lt;@Luck&gt; okay [00:35] &lt;@Luck&gt; found it [00:35] &lt;@Luck&gt; in dgmeffects [00:35] &lt;@Luck&gt; the guid column [00:35] &lt;@Luck&gt; effects.whatever [00:35] &lt;@Luck&gt; that's basically what is unique about what is sent [00:35] &lt;@Luck&gt; most of the time at least [00:36] &lt;@Luck&gt; except effects.Laser doesn't work [00:36] &lt;@Luck&gt; idk why :( [00:39] &lt;+Aknor&gt; huh, weird [00:39] &lt;+oza&gt; does that send it to all clients? [00:41] &lt;@Luck&gt; does what send it to all clients? [00:41] &lt;+oza&gt; the effects [00:41] &lt;+oza&gt; dgmeffects [00:42] &lt;+oza&gt; or are you jsut sayign thats where the id for it is [00:42] &lt;@Luck&gt; that's where the info is [00:42] &lt;+oza&gt; k [00:45] &lt;+Aknor&gt; so, luck, do you think that makes sense? have the module classes encode the gfx packet then attach it to that externalAction class instance passed into the module functions? [00:46] &lt;+Aknor&gt; then the MM takes that packet, when present, and sends it out? [00:46] &lt;@Luck&gt; yea [00:46] &lt;+Aknor&gt; ok [00:46] &lt;@Luck&gt; should be relatively simple [00:47] &lt;+Aknor&gt; i haven't thought of all that would go into this externalAction class, but since it's a class object, we can add to it later without breaking what's already there [00:47] &lt;@Luck&gt; the mm just does client-&gt;send(m_shipRef-&gt;GetModule(flag)-&gt;encodeGFXPacket()) or w/e [00:47] &lt;+Aknor&gt; yeah, kinda [00:47] &lt;@Luck&gt; i guess that's not really how i'd work if your wrapping all that up in a different class [00:48] &lt;@Luck&gt; i'm kind of thinking of it as a function inside the mm kind of way [00:48] &lt;+Aknor&gt; my idea was we make this ModuleAction class, that holds things like overload info on what slots get damaged due to overload and how much, this gfx packet, whatever else we need [00:48] &lt;@Luck&gt; which isn't necessarily the way it should be done [00:48] &lt;@Luck&gt; yea [00:48] &lt;+Aknor&gt; kind of a way for the modules to &quot;tell&quot; the MM what needs to happen now that the module has been Onlined or Activated or Overloaded or the reverse [00:48] &lt;@Luck&gt; i feel like that should be owned by the mm [00:48] &lt;+Aknor&gt; yes [00:49] &lt;@Luck&gt; kk [00:49] &lt;+Aknor&gt; so, when dogmaIMBound calls ModuleManager-&gt;Activate(moduleID) [00:49] &lt;+Aknor&gt; inside there, the MM makes a new instance of the ModuleAction class, and passes it into the module's Activate or w/e [00:49] &lt;+Aknor&gt; then the Module class modifies that instance [00:50] &lt;+Aknor&gt; and when the execution returns to the MM, it checks the instance of the ModuleAction class object for what's new/changed [00:50] &lt;+Aknor&gt; and takes action on it, whether it's sending out the gfx packet or applying overload damage to adjacent slots' modules [00:50] &lt;@Luck&gt; yea [00:50] &lt;@Luck&gt; everytime i think about handling overload damage my head hurts [00:51] &lt;+Aknor&gt; LOL [00:52] &lt;+Aknor&gt; when we make this design functional, the design itself should make it rather easy since the modules themselves will calculate heat damage [00:52] &lt;@Luck&gt; i hope so [00:52] &lt;+Aknor&gt; then the MM can take that from the modified ModuleAction class object passed into the module class and apply the damage to adjacent modules according to those formulas you mentioned [00:53] &lt;+Aknor&gt; where have you seen those formulas for overload damage? [00:53] &lt;@Luck&gt; im looking for the forum post right now [00:53] &lt;@Luck&gt; but you can read this while i search if you want [00:53] &lt;+Aknor&gt; you know, again, overload stuff is another thing that EFT does [00:53] &lt;+Aknor&gt; ok [00:53] &lt;@Luck&gt; it goes over it from a higher level point of view [00:53] &lt;@Luck&gt; yea that's true [00:53] &lt;+Aknor&gt; im gonna head to bed soon, so... [00:53] &lt;@Luck&gt; http://wiki.eveonline.com/en/wiki/Heat_(Game_mechanic) [00:53] &lt;+Aknor&gt; ah [00:54] &lt;+Aknor&gt; figured it be on evelopedia [00:54] &lt;@Luck&gt; i love this [00:54] &lt;@Luck&gt; i makes me want to kill the ccp devs [00:54] &lt;@Luck&gt; Offline modules and empty module slots function as heat sinks, reducing the heat damage taken over time both locally (nearby overloaded module(s) on same rack) and globally (whole ship). Hence such heat dispersion slots will give you middle-term overload as trade-off. [00:55] &lt;+Aknor&gt; makes sense [00:55] &lt;@Luck&gt; yea [00:55] &lt;+Aknor&gt; just not easy to simulate [00:55] &lt;@Luck&gt; but it's a pain in the ass [00:55] &lt;@Luck&gt; lol [00:55] &lt;+Aknor&gt; but again, the module itself knows how much heat will be generated when overloaded, so it just returns that in the ModuleAction class [00:56] &lt;+Aknor&gt; then the MM is responsible for checking adjacent module slots and assigning or sinking heat damage [00:57] &lt;@Luck&gt; yea [00:57] &lt;@Luck&gt; the more we talk about it the less of a pain it seems [00:57] &lt;@Luck&gt; but it's still a pain :p [00:58] &lt;+oza&gt; everything is still a pain [01:01] &lt;@Luck&gt; okay [01:01] &lt;@Luck&gt; so no one knows the exact formula [01:01] &lt;@Luck&gt; afaik [01:01] &lt;+oza&gt; which one? [01:02] &lt;@Luck&gt; for overload damage [01:03] &lt;@Luck&gt; im gonna write up what I know on overheating in the wiki [01:03] &lt;@Luck&gt; so we can attempt to put together a formula [01:03] * Luck hopes he still has wiki access [01:03] &lt;+Aknor&gt; Luck, it's in EFT... has to be [01:03] &lt;+Aknor&gt; LOL [01:03] &lt;@Luck&gt; it is in eft [01:03] &lt;+Aknor&gt; i just hate VB, LOL [01:03] &lt;+Aknor&gt; but i can read it [01:04] &lt;@Luck&gt; but all the people on the eve forums, including the mods say not to put much stock in his formula for that because the math is unkown [01:04] &lt;@Luck&gt; that his overload formulas are just his best guess [01:04] &lt;+oza&gt; why doesn't ccp release the formulas then [01:04] &lt;@Luck&gt; because they're weird about that [01:04] &lt;@Luck&gt; they don't release many formulas at all [01:04] &lt;@Luck&gt; most are figured out by the community [01:04] &lt;@Luck&gt; with a shitload of data points and excel :p [01:05] &lt;+oza&gt; if u log enough packets you could come up with soemthign close ? [01:05] &lt;+oza&gt; or still not close enough [01:05] &lt;@Luck&gt; logging the packets is probably overkill [01:05] &lt;@Luck&gt; we just need somone to spend a bunch of time breaking items with overloading and recording the time it takes to break them [01:05] &lt;@Luck&gt; and the specific configuration [01:06] &lt;@Luck&gt; and how different configurations affect the time [01:06] &lt;@Luck&gt; etc [01:06] &lt;+oza&gt; :S [01:06] &lt;+oza&gt; where is hur :P [01:06] &lt;+oza&gt; give him something to do [01:06] &lt;+oza&gt; hehe [01:06] &lt;@Luck&gt; :p</pre> </div> aa105f33aa7e7aa1b02f5d1450ebc1496cff2f49 Old Wiki:New Users Guide 0 110 136 2021-04-03T14:28:16Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> This is meant as an explanation for those who aren't used to setting up a server and why things are done the way they are. EveMu is an educational tool to assist in learning program development and the way a server would interact with a client program. This is just a brief guide in laymen terms for the processes detailed on [[Category_Crucible.html|http://wiki.evemu.dev/index.php/Category:Crucible]] <br /> '''Client and Tools''' This is the only thing you need to do if you are interested in testing on another developers server. EveMu currently uses the Crucible expansion and will NOT work with more modern (or earlier) iterations of the client. <br /> '''Build Server''' The server is an exe file supported with other files that create situations and interpret commands from the client and calculate responses then send them to the client for the next response. It runs alongside with the database. If you haven't [correctly] created the database the server will crash. The process for creating the server is long and a little intimidating for those unfamiliar with the various programs that are needed to download and compile the project. You will need to download the server code from Github. Github is a website where developers collaborate and work on code together for whatever company or task they want. If you are interested in server development and want to contribute you would do so here so others can check your contributions for mistakes. After downloading the raw code from Github you need to build it. There is a program called Cmake. Then you compile with Visual Studio. This is the program that you may use to create/edit existing code (C++) to manipulate the server to add features (commands). There are many potential errors that can occur throughout each step in this process. Many are because of missing files (on your computer) or improper typing of commands in prompts. <br /> '''Database''' The database contains all the ships, accounts, modules, space stations, pretty much everything and anything you can interact with and their respective attributes, values and properties. Creating the database is a time consuming process and is often the cause of most server crashes for new users because it wasn't created properly. The order in which you build the database is VERY VERY important. If you build it out-of-order it WILL NOT work. This is because of the nature of changes as things have been added and updated as understanding grows. Pro-tip: After successfully creating the database and creating a character and logging. LOG OUT IMMEDIATELY and back-up the database. <br /> '''Server Setup''' After you compile and the database works you need to move some files around so they all point to each other correctly. <br /> [[Server_Setup_Issues.html|Server Setup Issues]] </div> bc79af5004626763c9fd571f5a44aa321cffe425 Old Wiki:NPC Loot Drops 0 111 137 2021-04-03T14:28:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> We're attempting to gather as much data, general and specific, that tells us what kinds of modules/charges that NPCs of any faction and class drop when killed. Here's what we've found so far that we'll eventually turn into tables for our database that will be used by the server to determine what an NPC ship drops when it's killed. We believe it is reasonable to assume the size of modules/charges dropped correspond to the class of NPC ship as shown here: * Frigate AND Destroyers = Small * Cruiser AND Battlecruiser = Medium * Battleship = Large <br /> The following needs to be taken into consideration; Found in dgmattributetypesand dgmattribs; * 248 entityLootValueMin The minimum value of any given unit of loot dropped by this entity. Not the minimum value of all the loot, but of any given item dropped. * 249 entityLootValueMax The maximum value of any loot dropped by this entity. Thats for each unit of any given item of loot, not for the total value of all items of loot dropped. * 250 entityLootCountMin Deprecated. The minimum number of pieces of loot dropped by this entity. * 251 entityLootCountMax The maximum number of pieces of loot dropped by this entity. * 254 minLootCount Minimum loot count that an entity can take from the NPC corp loot resource * 256 maxLootCount Maximum loot count that an entity can take from the NPC corp loot resource * 258 minLootValue Minimum value of each resource the entity is able to take as loot. * 259 maxLootValue Maximum value of each resource the entity is able to take as loot. There is nothing in the core DB that points to these values. {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Tables|<span class="tocnumber">1</span> <span class="toctext">Tables</span>]] * [[#Step_1_-_link_the_npctype_to_a_set_of_loot|<span class="tocnumber">2</span> <span class="toctext">Step 1 - link the npctype to a set of loot</span>]] * [[#Step_2_-_assign_loot_to_the_set.|<span class="tocnumber">3</span> <span class="toctext">Step 2 - assign loot to the set.</span>]] * [[#Ship_type_-_DB_structure|<span class="tocnumber">4</span> <span class="toctext">Ship type - DB structure</span>]] * [[#Loot_Group_-_DB_structure|<span class="tocnumber">5</span> <span class="toctext">Loot Group - DB structure</span>]] * [[#Regular_NPC_Factions|<span class="tocnumber">6</span> <span class="toctext">Regular NPC Factions</span>]] * [[#Officer_Loot|<span class="tocnumber">7</span> <span class="toctext">Officer Loot</span>]] * [[#Deadspace_Drops|<span class="tocnumber">8</span> <span class="toctext">Deadspace Drops</span>]] * [[#Notes_and_links|<span class="tocnumber">9</span> <span class="toctext">Notes and links</span>]] |} == <span id="Tables" class="mw-headline"> Tables </span> == == <span id="Step_1_-_link_the_npctype_to_a_set_of_loot" class="mw-headline">Step 1 - link the npctype to a set of loot</span> == For example; typeID 2382 = Guristas Arrogator, creates wreckTypeID 26543 [[Invtypestowrecks.html|invtypestowrecks]] wreckTypeID 26543 is shared by Guristas Infiltrator, Guristas Saboteur, Guristas Destructor, Guristas Demolisher, Guristas Wrecker, Dire Guristas Despoiler, Dire Guristas Saboteur, Dire Guristas Plunderer, Dire Guristas Wrecker, Dire Guristas Destructor, Dire Guristas Demolisher, Typhoon Fleet Issue, Ammatar Navy Battleship, Tempest Fleet Issue, Machariel, Guristas Arrogator, Guristas Invader, Guristas Imputor,Guristas Despoiler, Guristas Plunderer, Elite Tempest Brutor, Panther, Outlaw Arrogator, Outlaw Imputor, Outlaw Infiltrator, Outlaw Invade, Outlaw Despoiler, Tempest Tribal Issue, Outlaw Saboteur, Outlaw Plunderer, Outlaw Wrecker, Outlaw Destructor, Outlaw Demolisher, Dire Guristas Invader, Dire Guristas Infiltrator, Dire Guristas Imputor, Dire Guristas Arrogator, Vargur. <br /> Some of these ships are player made/operated. Which means that the server would need to determine by the TypeID and not solely by the wreckTypeID. WreckID I think is used more for salvaging than for loot. <br /> Continuing the example; typeID 2382 = Guristas Arrogator <br /> == <span id="Step_2_-_assign_loot_to_the_set." class="mw-headline">Step 2 - assign loot to the set.</span> == We know the guristas use hybrid guns with missiles. They tend to drop shield based technologies as well (amongst other things). They don't drop armor modules, or energy/projectile weapons. A Guristas Arrogator is a frigate so it would drop only small modules. Therefore Each type would require a separate group. In addition there would need to be more groups to take size (small/medium and large modules) <br /> == <span id="Ship_type_-_DB_structure" class="mw-headline">Ship type - DB structure</span> == <div class="floatright"> [[../index5dc9.html?title=Special:Upload&wpDestFile=NPC_Loot_Tables_Design.jpg|400px]] </div> The image at right shows the proposed database table design for NPC Loot. {| ! typeID ! quantity ! Chance ! LootGroupID |- | 2382 | 1 | 0.05 | 1 |- | 2382 | 1 | 0.05 | 2 |- | 2382 | 100 | 0.15 | 3 |- | 2382 | 1 | 0.8 | 4 |- | 24102 | 1 | 0.1 | 4 |} In the third row the quantity is 100, this would be for the 3rd group which would represent some kind of small hybrid ammunition The fourth and firth rows show how different ships would share some fields (trade goods etc.). By handling the tables in this way there would be a maximum of one drop per lootgroupID. (two hybrid guns wouldn't drop from on the same NPC ship, but maybe a missile launcher and a hybrid gun could) == <span id="Loot_Group_-_DB_structure" class="mw-headline">Loot Group - DB structure</span> == {| ! LootGroupID ! typeID |- | 1 | 561 |- | 1 | 7249 |- | 1 | 7251 |- | 3 | 216 |- | 3 | 218 |} LootGroupID 1 would refer to small hybrid guns. LootGroupID 3 refers to small hybrid charges. <br /> == <span id="Regular_NPC_Factions" class="mw-headline"> Regular NPC Factions </span> == '''SPECIFIC''' [http://wiki.evemu.dev/index.php?title=Special:Upload&wpDestFile=NPC_Loot_Drop_Types_By_Faction.txt NPC Loot Drop Types by Faction] '''GENERAL''' {| !width="33%"| Faction !width="33%"| Module/Charge Types/Groups !width="33%"| Notes |- | '''[[Blood_Raiders.html|Blood Raiders]]''' | Nos/Lasers/Neutralizers/ArmorTankMods/ArmorReps | * Amarr-based: lasers and armor tanking |- | '''[http://wiki.evemu.dev/index.php?title=Sansha&action=edit&redlink=1 Sansha]''' | Nos/Lasers/Neutralizers/ArmorTankMods/ArmorReps | * Amarr|Galente-based: lasers, armor tanking, sometimes shields and missiles * should drop missle launchers too but they dont seem to |- | '''[[Guristas.html|Guristas]]''' | Railguns, Missle Launchers, Shield Mods | * Caldari-based: hybrid weapons, missiles and shield tanking |- | '''[[Serpentis.html|Serpentis]]''' | blasters, some railguns, armor tanking mods, | * Caldari|Galente-based: hybrid weapons, armor tanking |- | '''[[Angels.html|Angels]]''' | Armor/Shield Tanking Mods, Projectiles, Missle Launchers | * Galente|Minmatar-based: projectile weapons, missiles, armor and shield tanking |} == <span id="Officer_Loot" class="mw-headline"> Officer Loot </span> == For the rare Officer Spawns, [http://games.chruker.dk/eve_online/default.php Chruker's] site has [http://games.chruker.dk/eve_online/rare_loot_drops.php this information] on what they drop when killed. '''TODO: We should make our own local copy of this data from Chruker's Rare Loot Drops page in case his site goes away.''' == <span id="Deadspace_Drops" class="mw-headline"> Deadspace Drops </span> == * '''Gist = Bs Sized Angel Complex Loot''' * Gist-c Drops from the 7/10 Angels Plex * Gist-b Drops from the 8/10 Angels Plex * Gist-a Doesnt exist no 9/10 * Gist-x Drops From the Angel 10/10 * '''Gistum = Cruiser Sized Angel Complex Loot''' * Gistum-c Doesn't Exist no Angel 4/10 * Gistum-b should drop from the Angel 5/10 but the loot tables are broken * Gistum-a Doesn't Exist no Angel 6/10 * '''Gistii = Frig Sized Angel Complex Loot''' * Gistii-c Doesn't Exist no Angel 1/10 * Gistii-b Should drop from the 2/10 but the loot tables are broken * Gistii-a Drops from the serpentis 3/10(go figure) * '''Cent = Sanshas Complex Loot''' * Centus = Sanshas BS Sized Complex Loot * Centus-c Doesnt exist no 7/10 * Centus-b Doesnt exist no 8/10 * Centus-a Doesnt exist no 9/10 * Centus-x Drops from Sanshas 10/10 * '''Centum = Sanshas Cruiser Sized Complex Loot''' * Centum-c Should drop from 4/10 but doesnt due to broken loot tables * Centum-b Doesnt exist no 5/10 * Centum-a Drops from Sanshas 6/10 * '''Centii = Sanshas Frig Sized Complex Loot''' * Centii-c Should drop from 1/10 but dosent due to broken loot table * Centii-b Doesnt exist no 2/10 * Centii-a Should drop from 3/10 but doesnt due to broken loot table * '''Corp = Blood Raiders Complex Loot''' * Corpus = Blood Raider BS Sized Complex Loot * Corpus loot doesnt exist due to lack of 7/10-10/10 Blood complexes. * '''Corpum = Blood Raider Cruiser Sized Loot''' * Coupum-c Doesnt exist no 4/10 * Corpum-b Doesnt exist no 5/10 * Corpum-a Drops from 6/10 Blood Complex * '''Corpii = Blood Raider Cruiser Sized Loot''' * Corpii loot doesnt exist due to lack of 1/10-3/10 Blood complexes. <br /> * '''Core = Serpentis Complex Loot''' * Core = Serpentis BS Sized Complex Loot * Core-c Doesnt exist no 7/10 * Core-b Doesnt exist no 8/10 * Core-a Doesnt exist no 9/10 * Core-x Drops from Serpentis 10/10 * '''Corelum = Serpentis Cruiser Sized Complex Loot''' * Corelum-c Should drop from Serpentis 4/10 but doesnt due to broken loot table. * Corelum-b Doesnt exist no 5/10 * Corelum-a Doesnt exist no 6/10 * '''Corelli = Serpentis Frig Sized Complex Loot''' * Corelli-c Should drop from Serpentis 1/10 but doesnt due to broken loot table. * Corelli-b Doesnt exist no 2/10 * Corelli-a Should drop from Serpentis 3/10 but that plex drops gistii-a instead. * '''Pith = Guristas Complex Loot''' * Pith = Guristas BS Sized Complex Loot * Pith-c Doesn exist no 7/10 * Pith-b Drops from Guristas 8/10 * Pith-a Doesnt Exist no 9/10 * Pith-x Doesnt Exist no 10/10 * '''Pithum = Guristas Cruiser Sized Complex Loot''' * Pithum-c Should drop from 4/10 but doesnt due to broken loot tables. * Pithum-b Doesnt exist no 5/10 * Pithum-a Should drop from 6/10 but doesnt due to broken loot tables. <br /> == <span id="Notes_and_links" class="mw-headline"> Notes and links </span> == This is a collection of links and notes for future reference on how CCP may effect the loot tables. [http://www.reddit.com/r/Eve/comments/1fl8xk/patch_notes_patch_notes_for_odyssey_ccp_falcon/ Reddit site 1] * Loot from the profession container is distributed using the scattering mechanic. * Introduction of new items on the loot table, such as capital rigs and faction tower BPCs. [http://www.twius.net/patch-notes/eve-online-patch-notes.html Twinstar] * COSMOS containers are refilled correctly with loot again. * The loot scattering mechanic has been completely removed from all sites that contained that functionality. * Exploration loot tables have been adjusted to compensate for the loot scattering removal. [http://www.ogrank.com/content/view/541/33 Ogrank] * Missing “named drops” ECM modules from NPC’s have been added to loot tables [http://forum.eve-online.ru/showthread.php?t=2302 Eveonline.ru] * Loot tables will also get some anti-nerf lovin', among the tweaks are removing mediocre or non-sensical loot, like small shield boosters and basic damage controls from battleships, and increased drop rate of named modules from the elite ships. * Sansha’s Nation - Will be getting more missile firing + faction missile launchers as loot drop * Loot tables will also get a big attention, among things are removing crap loot like small shield boosters and basic damage controls from battleships, and increased drop rate of named modules from the elite ships. [http://www.battlefield.no/forum/index.php?/topic/90768-eve-online-revelations-2/ battlefield.no] * Empire Navy NPCs now drop loot as well as tags. * Meta versions of the mining upgrade and ice harvester upgrade are now available dropped in loot by certain entities. [http://www.reddit.com/r/Eve/comments/22m5h4/highsec_loot_tables/ Reddit site 2] [https://forums.eveonline.com/default.aspx?g=posts&m=1106977#post1106977 Eve Online Forums] &quot;Pulling all the Meta 0* loot out of PvE drops has been on our to-do list for a while, as it's damaging to both mining and T1 industry. With the changes to rogue drones going in, we're already committing to a mineral supply &quot;shock&quot; in this patch, so we decided when planning this release to roll in the Meta 0 removal at the same time so we only have to go through this process once. Due to the way that the loot tables are set up internally, it's *substantially* easier** to replace loot rather than remove it, so the solution we're going with for now is swapping all the Meta 0 stuff for metal scraps (the 0.01m3 version). Ie, vanilla T1 equipment - your Cap Recharger Is and 1MN Afterburner Is and so on We have a chance of picking from a given loot table, and then ratios for each type within the table. If we just removed the Meta 0 stuff, we'd end up dropping WAY more Meta 1-4, which isn't desirable, and the only way to resolve this is to alter the table pick rates, which are authored on a per-NPC basis, which would mean recalculating and adjusting every NPC in the game. This isn't really viable within the scope of this release, and we don't want to push this change back because it means doing a &quot;double shock&quot; to mineral prices; hence the metal scraps.&quot; </div> 2b2526f48eeeff957c65659bd5770a342ece9626 Old Wiki:Object caching 0 112 138 2021-04-03T14:28:36Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="Ideas_on_how_we_can_create_an_In-Memory_Database_using_caching_or_other_methods" class="mw-headline"> '''Ideas on how we can create an In-Memory Database using caching or other methods''' </span> == == <span id="METHOD_1_-_Expand_CacheObjectMgr.3F" class="mw-headline"> '''METHOD 1 - Expand CacheObjectMgr?''' </span> == Maximus: It would have data storage + several basic methods to update cache content - some sort of delete, insert and update methods ( the last one in two forms: one for remove, update, insert methodology and one for update and leave one ). <br /> == <span id="METHOD_2_-_Use_MySQL_Cluster" class="mw-headline"> '''METHOD 2 - Use MySQL Cluster''' </span> == Shane has been working to try to successfully setup the minimum required 3 nodes to get it up and running. This system uses an In-Memory Database with proper backend connection to the disk based DB. </div> 4660599c7a081ae3eeb29fe361a02369564a3c7f Old Wiki:Out of Game Player Tools 0 113 139 2021-04-03T14:28:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Introduction|<span class="tocnumber">1</span> <span class="toctext">Introduction</span>]] * [[#EFT|<span class="tocnumber">2</span> <span class="toctext">EFT</span>]] * [[#EVEmon|<span class="tocnumber">3</span> <span class="toctext">EVEmon</span>]] * [[#EVEmu_Killboard|<span class="tocnumber">4</span> <span class="toctext">EVEmu Killboard</span>]] |} = <span id="Introduction" class="mw-headline"> Introduction </span> = EVE is fun and exciting and interesting, but man when I first learned about out of game tools, it was like the opening of my eyes for the first time and what fun would EVEmu be without those tools available to players of EVEmu, huh? Not much fun, so, in addition to the [[Category_EVEmu_API_Server.html|API Server]], we worked on making some popular EVE out of game tools compatible with EVEmu's API server. They are described here. <br /> = <span id="EFT" class="mw-headline"> EFT </span> = TBD <br /> = <span id="EVEmon" class="mw-headline"> EVEmon </span> = TBD <br /> = <span id="EVEmu_Killboard" class="mw-headline"> EVEmu Killboard </span> = TBD (based on [http://wiki.eve-id.net/EDK eve dev killboard]) </div> 7c77a0fb7789b253397f5addb8a845382375dbca Old Wiki:Quick Start Guide 0 114 140 2021-04-03T14:28:56Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |align="center" width="50%"| GETTING STARTED: |align="center" width="50%"| [[Category_Crucible.html|FOR DETAILED INSTRUCTIONS CLICK HERE]] [[New_Users_Guide.html|For users who are new]] to build servers and would like some background information on what they are doing for learning please go [[New_Users_Guide.html|here]] |- |align="center"| STEP #1 - Get the Client! |align="center"| Get the Client: [http://192.228.108.100/~evemu/evemu/ &gt;&gt;&gt; DOWNLOAD HERE &lt;&lt;&lt;] OR [http://eve.alasiya.net/misc/ &gt;&gt;&gt; HERE &lt;&lt;&lt;] |- |align="center"| STEP #2 - [http://wiki.evemu.dev/index.php?title=Client_Setup&action=edit&redlink=1 Configure the Client!] |align="center"| Configure your Client <span class="underline">[https://github.com/bluepatcher/blue_patcher/archive/master.zip Get this ZIP package for Crucible]</span> and follow the instructions in the [http://wiki.evemu.dev/index.php?title=Client_Setup&action=edit&redlink=1 Readme.md] file to &quot;complete&quot; your client configuration.<br /> <span class="underline">'''NOTE:''' Do NOT run the Client from the icon [the launcher] you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe'''</span> |- |align="center"| STEP #3 - Get the Server! |align="center"| TWO Options:<br /> # USE PRE-BUILT BINARIES: <span class="underline">[http://builds.evemu.org/crucible_360229/ pre-compiled binaries for your platform]</span>) - '''Recommended for New Users''' You will need both *.7z files and the binary. # BUILD IT - Build Instructions can be found below in the LEFT column ([[Category_Crucible.html|Crucible is our Current Development]]) |- |align="center"| STEP #4 - Configure and Setup the Server! |align="center"| Once you either built or downloaded pre-built server, <span class="underline">[[Category_Crucible.html#STEP_3.5_-_Server_Configuration|follow these instructions]]</span> to configure and setup your server. |- |align="center"| STEP #5 - Test and Report! |align="center"| Yes! We know there are bugs and missing features!<br /> <span class="underline">[[Server_Status_(Crucible).html|Click here]]</span> to see a list of known working and missing/broken features of the EVE Online experience.<br /> You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the <span class="underline">[[Server_Status_(Crucible).html|Project Status]]</span>.<br /> <span class="underline">[[Category_Testing_EVEmu.html|See this article]]</span> for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. If you want to report bugs report them [http://bugzilla.evemu.net/ here] |} </div> f02424af76923436189e5978a3289d08695591d4 Old Wiki:Receiving and Decoding Packets incoming from Clients 0 115 141 2021-04-03T14:29:06Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="EVEmu_Packet_Receiving_and_Decoding" class="mw-headline"> '''EVEmu Packet Receiving and Decoding''' </span> == '''RECEIVING PACKETS, PROCESSING, AND DISPATCHING:''' 14:07 descention packets seem to be in a format of: type,source,dest,userID,payload,options 14:08 descention which might be of these types (in order):int,tuple,tuple,int,buffer,dict 14:09 descention i'm not sure about the source,dest types 14:18 shanemse tuple is python code.. 14:18 shanemse http://en.wikibooks.org/wiki/Python_Programming/Tuples 14:22 descention in c++ objects: PyInt?,PyTuple?,PyTuple?,PyInt?,PyBuffer?,PyDict? 14:22 descention the PyTuples? might be PyAddress? 14:24 descention I figured out most of that from the packet encode. line 267 of PyPacket?.cpp <br /> main.cpp Super-loop - the while() loop near the end of the file inside main() line 228: sEntityList.Process() ? ? ? EntityList::Process() line 69: if(!active_client-&gt;ProcessNet?()) ? ? ? Client::ProcessNet?() line 106: if( DispatchPacket( p ) ) ? ? ? EVEPktDispatch::DispatchPacket?() line 37: switch on PyPacket::type of type MACHONETMSG_TYPE case MACHONETMSG_TYPE::AUTHENTICATION_REQ: AuthenticationReq::Decode( packet-&gt;payload ) - payload is a PyTuple? inside the packet EVEPacketDispatcher::Handle_AuthenticationReq() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::AUTHENTICATION_RSP: AuthenticationRsp::Decode( packet-&gt;payload ) - payload is a PyTuple? inside the packet EVEPacketDispatcher::Handle_AuthenticationRsp() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::CALL_REQ: PyCallStream::Decode( packet-&gt;type_string, packet-&gt;payload ) - payload is a PyTuple? inside the packet EVEPacketDispatcher::Handle_CallReq() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::CALL_RSP: TODO: decode substream in tuple EVEPacketDispatcher::Handle_CallRsp() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::NOTIFICATION: EVEPacketDispatcher::Handle_Notify() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::ERRORRESPONSE: ErrorResponse::Decode( packet-&gt;payload ) - payload is a PyTuple? inside the packet EVEPacketDispatcher::Handle_ErrorResponse() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::SESSIONCHANGENOTIFICATION: SessionChangeNotification::Decode( packet-&gt;payload ) - payload is a PyTuple? inside the packet EVEPacketDispatcher::Handle_SessionChange() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::PING_REQ: EVEPacketDispatcher::Handle_PingReq() - packet and its decoded form are passed into here case MACHONETMSG_TYPE::PING_RSP: EVEPacketDispatcher::Handle_PingRsp() - packet and its decoded form are passed into here ? ? ? ( what goes here? ) ? ? ? various services' Handle_xxx() functions, such as LSCService::Handle_GetChannels() </div> 9705ba76a6f3120221337e690b030c2ef9581fbf Old Wiki:Recent Project Activity 0 116 142 2021-04-03T14:29:17Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> Here's what's been going on lately in the land of EVEmu: = <span id="Recent_changes_on_the_Wiki" class="mw-headline"> Recent changes on the Wiki </span> = <br /> = <span id="EVEMU_SERVER_Source_Code_Activity" class="mw-headline"> EVEMU_SERVER Source Code Activity </span> = </div> 2475d84c1d9cb725e5e8d81b7d807165b14a8713 Old Wiki:Serpentis 0 117 143 2021-04-03T14:29:26Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> <br /> == <span id="Serpentis_loot" class="mw-headline"> Serpentis loot </span> == Serpentis (Tech 1, Named and Faction - Shadow Serpentis) - Snake Implants Adnitmatter Charge L, M, S Iridium Charge L, M, S Iron Charge L, M, S Lead Charge L, M, S Plutonium Charge L, M, S 100mn Afterburner 100mn Microwarpdrive 10mn Afterburner 10mn microwarpdrive 125mm Railgun 150mm Railgun 1mn afterburner 1mn Microwarpdrive 200mm Railgun 2500mm Railgun 350mm Railgun 425mm Railgun 75mm Railgun Adaptive Nano Plating Armor EM Hardner Armor Explosive Hardner Armor Kinetic Hardner Armor Thermic Chardner Co-Processor Dual 150mm Railgun Dual 250mm Railgun Electon Blaster Canon Energized Adaptive Nano Membrane Energized Magnetic Membrane Energized Reactive Membrane Energized Thermic Membrane Heavy Electron Blaster Heavy Ion Blaster Large Armor Repairer Large Plasma Smartbomb (Thermal) Light Electon Blaster Light Ion Blaster Light Neutron Blaster Magnetic Field Stabilizer Magnetic Plating Medium Armor Repairer Medium Plasma Smartbomb Neutron Blaster Cannon Power Fiagnostic System Reactive Plating Reactor Control Unit Reflective Plating Sensor Booster Small Armor Repairer Small Plasma Smartbomb Stasis Webifier Thermic Plating Tracking Computer Tracking Link Warp Disruptor Warp Scrambler Thorium Charge L, M, S Tungsten Charge L, M, S Uranium Charge L, M, S </div> 7b7027aafa5130d853d7e4d5fc186961d3f8cdec Old Wiki:Server Setup Issues 0 118 144 2021-04-03T14:29:37Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> These are some technical problems that developers have experienced in the past SETTING UP the server. This page will be added as people ask questions and get support on various issues. It may contain support chat logs or external links to files. It may contain information copied directly from the server setup page. The categories are divided into the Setup step for the server for sorting. <br /> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Client_and_Tools|<span class="tocnumber">1</span> <span class="toctext">'''Client and Tools'''</span>]] * [[#Build_Server|<span class="tocnumber">2</span> <span class="toctext">'''Build Server'''</span>]] * [[#Database|<span class="tocnumber">3</span> <span class="toctext">'''Database'''</span>]] * [[#Server_Setup|<span class="tocnumber">4</span> <span class="toctext">'''Server Setup'''</span>]] |} == <span id="Client_and_Tools" class="mw-headline"> '''Client and Tools''' </span> == '''STEP 1 Client''' '''Problem:''' I cant get/download the client! The link is dead! '''Solution:''' [[EVEmu_Connect.html|Contact]] us one irc or on the [http://forum.evemu.org/ forums]. <br /> '''STEP 2 Setup''' <br /> == <span id="Build_Server" class="mw-headline"> '''Build Server''' </span> == '''STEP 3.1 Get Src''' '''CMake''' '''ERROR''' CMake Error at cmake/BuildPackage.cmake:45 (FILE):<br /> file DOWNLOAD HASH mismatch<br /> for file: [Cevemu/evemu_server-master/build/mysql-5.5.25a-win32.zip]<br /> expected hash: [859a538879d9f8ed06dcdcec9475aa78]<br /> actual hash: [d41d8cd98f00b204e9800998ecf8427e]<br /> Call Stack (most recent call first):<br /> CMakeLists.txt:184 (BUILD_PACKAGE)<br /> '''SOLUTION''' Download it here and put it in the folder manually http://sourceforge.net/projects/mysql.mirror/files/MySQL%205.5.25a/ <br /> '''STEP 3.3 Compile''' == <span id="Database" class="mw-headline"> '''Database''' </span> == '''STEP 3.4 DB''' '''Data Import''' '''Final Checking''' '''Add Accounts''' '''Rebuild DB''' <br /> == <span id="Server_Setup" class="mw-headline"> '''Server Setup''' </span> == '''STEP 3.5 Config''' '''Finishing Up''' </div> 6afd9d2dda55ef0303d1c56d1f8383deecdf0f1b Old Wiki:Server Status (Apocrypha) 0 119 145 2021-04-03T14:29:46Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="EVEmu_Apocrypha_Project_-_Status_Tracking" class="mw-headline"> EVEmu Apocrypha Project - Status Tracking </span> = Game feature </div> Status Notes Login 100% N/A Character - Character creation 100% N/A - Character login 100% N/A Account management - Account login 100% N/A - Account banning 100% N/A - Character creation 100% N/A - Character deletion 80% Need to add some more DB deletion query - Character entrance to last location 100% N/A Character window - Skill window -&gt; Open skills window 100% N/A -&gt; Train skills 100% -&gt; View Skill Training history 50% Everything is harcoded into an empty PyList - Certificates window -&gt; Open certificates window 100% N/A -&gt; Grant certificates 100% N/A -&gt; Change certificates visibility 100% N/A - Decorations window -&gt; Open decorations window 50% N/A -&gt; Show decorations 50% Need to fetch them from the DB - Attributes window -&gt; Open Attributes window 100% N/A -&gt; Remap Attributes 0% Need to do some research to know what does the remap need to get from the server - Augmentations window -&gt; Open augmentations window 100% N/A -&gt; Plugin implants 100% N/A -&gt; Unplugging implants 100% N/A -&gt; Consume boosters 100% N/A -&gt; Boosters expiration 50% Need to send a notification to client ? - Jump clones window -&gt; Open jump clones window 100% N/A -&gt; Jump to clones 0% N/A - Bio window -&gt; Open Bio Window 100% N/A -&gt; Change character's bio 100% N/A - Employment history window -&gt; Open Employment History window 100% N/A -&gt; Show Employment History 100% N/A - Standings window -&gt; Open Standings window 100% N/A -&gt; Show standings 50% Everything is harcoded, also you can not set standings for other characters - Security Status window -&gt; Open Security Status window 100% N/A -&gt; Show Security Status 50% Everything is harcoded into an empty PyList - Kill Rights window -&gt; Open Kill Rights window 100% N/A -&gt; Show Kill Rights 50% Everything is harcoded into an empty PyList - Combat Log window -&gt; Open Combat Log window 100% N/A -&gt; Show Combat Logs 50% Everything is harcoded into an empty PyList 1b7ed16378aa24772ac1bedce91b581126340cae Old Wiki:Server Status (Crucible) 0 120 146 2021-04-03T14:29:57Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[EVEmu_Development.html|EVEmu Development]] / '''Server Status (Crucuble)''' (you are here) |} <br /> = <span id="Crucible" class="mw-headline"> Crucible </span> = {| |align="center"| Overall Progress   |} <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} {| |align="center"| (estimate and subjective) |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''10'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Crucible|<span class="tocnumber">1</span> <span class="toctext">Crucible</span>]] ** [[#Development_Activities|<span class="tocnumber">1.1</span> <span class="toctext">Development Activities</span>]] ** [[#Known_Issues|<span class="tocnumber">1.2</span> <span class="toctext">Known Issues</span>]] ** [[#Features|<span class="tocnumber">1.3</span> <span class="toctext">Features</span>]] ** [[#System_Foundation_Fundamentals|<span class="tocnumber">1.4</span> <span class="toctext">System Foundation Fundamentals</span>]] * [[#All_the_items_need_to_be_verified_under_new_Crucible_Client|<span class="tocnumber">2</span> <span class="toctext">All the items need to be verified under new Crucible Client</span>]] ** [[#General_Interface_Features|<span class="tocnumber">2.1</span> <span class="toctext">General Interface Features</span>]] ** [[#Account_and_Character_Management|<span class="tocnumber">2.2</span> <span class="toctext">Account and Character Management</span>]] ** [[#Skills_-_Certificates_-_Implants_-_Clones|<span class="tocnumber">2.3</span> <span class="toctext">Skills - Certificates - Implants - Clones</span>]] ** [[#NPC_Station_Services|<span class="tocnumber">2.4</span> <span class="toctext">NPC Station Services</span>]] ** [[#Character_Interaction_Menus|<span class="tocnumber">2.5</span> <span class="toctext">Character Interaction Menus</span>]] ** [[#Chats_-_Local_Corp_Custom_Private|<span class="tocnumber">2.6</span> <span class="toctext">Chats - Local Corp Custom Private</span>]] ** [[#EvE_Mail|<span class="tocnumber">2.7</span> <span class="toctext">EvE Mail</span>]] ** [[#Module_Management|<span class="tocnumber">2.8</span> <span class="toctext">Module Management</span>]] ** [[#Item_Properties_Window|<span class="tocnumber">2.9</span> <span class="toctext">Item Properties Window</span>]] ** [[#Market_Window_-_Buy_Orders_-_Sell_Orders|<span class="tocnumber">2.10</span> <span class="toctext">Market Window - Buy Orders - Sell Orders</span>]] *** [[#Sell_Order|<span class="tocnumber">2.10.1</span> <span class="toctext">Sell Order</span>]] *** [[#Buy_Order|<span class="tocnumber">2.10.2</span> <span class="toctext">Buy Order</span>]] ** [[#Assets_Window|<span class="tocnumber">2.11</span> <span class="toctext">Assets Window</span>]] ** [[#Wallet_Window|<span class="tocnumber">2.12</span> <span class="toctext">Wallet Window</span>]] ** [[#Contracts|<span class="tocnumber">2.13</span> <span class="toctext">Contracts</span>]] ** [[#Map_System|<span class="tocnumber">2.14</span> <span class="toctext">Map System</span>]] ** [[#Ship_Management_in_Space|<span class="tocnumber">2.15</span> <span class="toctext">Ship Management in Space</span>]] ** [[#Ship_Navigation_in_Space|<span class="tocnumber">2.16</span> <span class="toctext">Ship Navigation in Space</span>]] ** [[#Ship_Combat_in_Space|<span class="tocnumber">2.17</span> <span class="toctext">Ship Combat in Space</span>]] ** [[#NPC.2C_Combat.2C_Spawning.2C_AI|<span class="tocnumber">2.18</span> <span class="toctext">NPC, Combat, Spawning, AI</span>]] ** [[#Scan_and_Directional_Probing|<span class="tocnumber">2.19</span> <span class="toctext">Scan and Directional Probing</span>]] ** [[#Fleet_Management|<span class="tocnumber">2.20</span> <span class="toctext">Fleet Management</span>]] ** [[#Overview_Management|<span class="tocnumber">2.21</span> <span class="toctext">Overview Management</span>]] ** [[#Corporation_Management|<span class="tocnumber">2.22</span> <span class="toctext">Corporation Management</span>]] ** [[#Alliance_Management|<span class="tocnumber">2.23</span> <span class="toctext">Alliance Management</span>]] ** [[#Player_Owned_Station_.28POS.29_Deployment_and_Management|<span class="tocnumber">2.24</span> <span class="toctext">Player Owned Station (POS) Deployment and Management</span>]] ** [[#Anomalies_and_Missions|<span class="tocnumber">2.25</span> <span class="toctext">Anomalies and Missions</span>]] ** [[#Outpost_Construction_and_Management|<span class="tocnumber">2.26</span> <span class="toctext">Outpost Construction and Management</span>]] ** [[#EvE_Server_API|<span class="tocnumber">2.27</span> <span class="toctext">EvE Server API</span>]] |} <br /> == <span id="Development_Activities" class="mw-headline"> Development Activities </span> == Various developers are working on their little preferred areas and pet projects, so head on over to the '''[[EVEmu_Development_Team.html|EVEmu Development Team]]''' page to see what they are currently working on at the moment. == <span id="Known_Issues" class="mw-headline"> Known Issues </span> == Please see the '''[[Known_Bugs_and_Issues_(Crucible).html|Known Bugs and Issues (Crucible)]]''' page for a list of the known issues and bugs yet to be addressed. There is also a bug tracker at http://bugs.evemu.net/ or you can submit on Github at https://github.com/evemuproject/evemu_server/issues == <span id="Features" class="mw-headline"> Features </span> == This is a comprehensive list of medium to high level features of the entire game experience that we've identified so far are ones we want to work on to fully implement as best as we are able to. If anyone finds something missing from this list, please feel free to post something in the [[Forums.html|Development Forum]] or find a [[EVEmu_Development_Team.html|developer]] in [[IRC.html|IRC]].<br /> Service/Something </div> Status Comments Login 95% {| | | |} Character Selection Screen still needs all character info changed from static data to data pulled from database (balance, current location, skill points, etc) Character - Selection 100% {| | | |} N/A - Creation 100% {| | | |} N/A - Skill Training 100% {| | | |} Working 17/01/2014 - Market Buying/Selling? 95% {| | | |} Buy / Selling functional, some bugs 12/01/2014 - Modules 5% {| | | |} Very Early Development - Fleets 0% {| | | |} NON-OPERATIONAL - Ship Combat 5% {| | | |} some aspects of targeting do work - Chatting 70% {| | | |} Chatting in channels works, private chats does not. 12/01/2014 - EvE Mail 50% {| | | |} Broken (Failed to load mailbox) - Mining 0% {| | | |} NOT IMPLEMENTED - Station Services 50% {| | | |} Mostly NOT working - Missions 0% {| | | |} NON-OPERATIONAL - NPCs 20% {| | | |} Minimal: spawns work, basic targeting/shooting/following - awaiting Modules for 2-way combat - POSs 0% {| | | |} NON-OPERATIONAL - Corporations/Alliances 30% {| | | |} PARTIALLY WORKS - EvE Server API 10% {| | | |} OPERATIONAL, with limited API calls implemented <br /> == <span id="System_Foundation_Fundamentals" class="mw-headline"> System Foundation Fundamentals </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''32.5'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Efficient, Accurate Packet Deciphering | 0% {| | | |} | in progress |- | - Further Mutex-ing | 0% {| | | |} | in progress |- | - Complete Object Attribute Management overhaul | 100% {| | | |} | COMPLETE |- | - Complete investigation of remaining database fields | 0% {| | | |} | in progress |- | - Proper spawning and item creating | 60% {| | | |} | Many Celestials, All Ships, All Items |- | - Item Handling | 0% {| | | |} | unknown |- | - Eliminate all compiler Warnings from the EVEmu solution | 100% {| | | |} | COMPLETE |- | - Complete rewrite/relook at [[Destiny.html|Destiny]] | 0% {| | | |} | very buggy |- | - GM commands | 30% {| | | |} | Some commands functional, support in place for others. |} <br /> = <span id="All_the_items_need_to_be_verified_under_new_Crucible_Client" class="mw-headline"> All the items need to be verified under new Crucible Client </span> = == <span id="General_Interface_Features" class="mw-headline"> General Interface Features </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''67'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Get Item Info | 100% {| | | |} | N/A |- | - Get Ship Info | 90% {| | | |} | Mostly working, for some ships for some reason, it shows nothing |- | - Get Skill Info | 100% {| | | |} | N/A |- | - Get Certification Info | 100% {| | | |} | N/A |- | - Get Character Info | 80% {| | | |} | Corporation info is not there, Standing and Decorations tabs broken |- | - Get NPC Corporation Info | 0% {| | | |} | NOT IMPLEMENTED |- | - Get Player Corporation Info | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Account_and_Character_Management" class="mw-headline"> Account and Character Management </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''43.2'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Account Login | 75% {| | | |} | Mostly working, character select screen data is mostly hard-coded, requires database lookup |- | - Account Banning/Kicking | 60% {| | | |} | In Progress |- | - Character Creation | 100% {| | | |} | Done |- | - Character Deletion | 40% {| | | |} | Working, incomplete |- | - Character entrance to last location | 100% {| | | |} | Done |- | - Character Window | 80% {| | | |} | unknown |- | - Open Skills Window | 100% {| | | |} | Done |- | - Open Certificate Window | 0% {| | | |} | Broken |- | - Open Decorations Window | 0% {| | | |} | Freezes Character window |- | - Open Attributes Window | 100% {| | | |} | Done |- | - Neural Remap | 90% {| | | |} | Works, may need re-logging for effects to be apparent. 22/12/2013 |- | - Open Augmentations Window | 50% {| | | |} | Works. But Implants do not plug in at this time. 22/12/2013 |- | - Open Jump Clones Window | 0% {| | | |} | unknown |- | - Open Bio Window | 100% {| | | |} | Works and can be seen by others in profile. |- | - Open Employment History Window | 75% {| | | |} | unknown |- | - Open Standings Window | 100% {| | | |} | Working |- | - Open Security Status Window | 0% {| | | |} | unknown |- | - Open Kill Rights Window | 0% {| | | |} | unknown |- | - Open Combat Log Window | 0% {| | | |} | unknown |} <br /> == <span id="Skills_-_Certificates_-_Implants_-_Clones" class="mw-headline"> Skills - Certificates - Implants - Clones </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''92.8'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Browse Skills to train | 100% {| | | |} | Done |- | - Add skills to queue | 100% {| | | |} | Done |- | - Filter skills that don't fit in queue time remaining | 100% {| | | |} | Done |- | - Apply changes to skill queue | 100% {| | | |} | Done - Working. 17/01/2014 |- | - Skill training time | 100% {| | | |} | Done - Working. 17/01/2014 |- | - Right-click add skill to queue from Skills Window in Character Window | 100% {| | | |} | Done |- | - Certificate Awarding | 50% {| | | |} | You can claim certificates but it will not prompt you that you have a certificate waiting to be claimed. - Broken in current revision. 12/01/2014 |} <br /> == <span id="NPC_Station_Services" class="mw-headline"> NPC Station Services </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''52.1'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - In-station Guests List | 90% {| | | |} | Working, with bugs |- | - Can repackage ships/items | 0% {| | | |} | BROKEN - Needs investigation into existing code |- | - Can assemble ships from packaged state | 100% {| | | |} | Done |- | - Can leave/make active ships | 90% {| | | |} | Need more Testing, leaving ship in station is broken |- | - Can initiate and finalize trades of items/ships | 0% {| | | |} | NOT IMPLEMENTED |- | - Repair Services | 0% {| | | |} | Does not give quote. 22/12/2013 |- | - Insurance Services | 0% {| | | |} | NOT IMPLEMENTED |- | - Medical Services | 0% {| | | |} | unknown |- | - Clone upgrade | 100% {| | | |} | WORKING |- | - Clone transfer | 0% {| | | |} | NOT IMPLEMENTED |- | - Jump clone installation | 0% {| | | |} | NOT IMPLEMENTED |- | - Items window | 100% {| | | |} | Working |- | - Can merge items | 100% {| | | |} | Working |- | - Can trash/split/trade items | 60% {| | | |} | Partially Working - Trade NOT IMPLEMENTED |- | - Can open/close containers | 100% {| | | |} | Done |- | - Can move items into/out of containers | 100% {| | | |} | Done |- | - Can inject skills from items | 100% {| | | |} | Done |- | - Agents Tab | 50% {| | | |} | Agent appears however, &quot;Agent name - Quit game&quot;, information can be requested (but none appears) |- | - Can initiate conversation with station agent | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Character_Interaction_Menus" class="mw-headline"> Character Interaction Menus </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''100'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Right-click Menu in Local | 100% {| | | |} | Done |- | - Right-click Menu in Chats other than Local | 100% {| | | |} | Done |- | - Right-click Menu in Station | 100% {| | | |} | Done |} <br /> == <span id="Chats_-_Local_Corp_Custom_Private" class="mw-headline"> Chats - Local Corp Custom Private </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''84.2'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Characters show up in Local | 100% {| | | |} | Kinda Working, need testing, character names do not get updated to subsequent clients logging into the system after the first |- | - Chat in Local | 100% {| | | |} | Done |- | - Characters show up in Corp | 90% {| | | |} | character names do not get updated for subsequent character logins |- | - Chat in Corp | 90% {| | | |} | character names do not get updated for subsequent character logins |- | - Initiate Private Conversation Chat | 0% {| | | |} | NOT IMPLEMENTED |- | - Create Private Chat Channels | 70% {| | | |} | Working, need testing, password checks and moderators NON-FUNCTIONAL |- | - Joining Created Private Chat Channels | 90% {| | | |} | working, need testing |- | - Chat in Private Chat Channels | 100% {| | | |} | Done |- | - Load Subscribed Public and Private Chat Channels Upon Login | 95% {| | | |} | Mostly working, one empty-named channel loaded for each character (server attempts to load a channel with ID = characterID) |- | - Configure Private Chat Channels | 60% {| | | |} | Working, but need more work |- | - Leave Chat Channels | 100% {| | | |} | Done |- | - Un-subscribe (leave) from Private Chat Channel | 100% {| | | |} | Done |- | - Character and Corporation Lookup | 100% {| | | |} | Done |} <br /> == <span id="EvE_Mail" class="mw-headline"> EvE Mail </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''17.5'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Can Send Eve-mails | 50% {| | | |} | Email is made and put into database. Difficulties reading the 'body' of the message (doesn't appear but it does display correct size in bytes) 22/12/2013 |- | - Can Receive Eve-mails | 0% {| | | |} | Unknown |- | - Can View Eve-mails | 40% {| | | |} | Broken (unable to load mailbox) |- | - Can Reply-to Eve-mails | 50% {| | | |} | Unknown |- | - Can Send Eve-mails to Groups (like Corp) | 0% {| | | |} | Broken |- | - Can Create new Private Mailing Lists | 0% {| | | |} | Need Testing |- | - Newly Created Private Mailing Lists Saved to DB/Restored from DB | 0% {| | | |} | need testing |- | - Can Send/Receive messages in new Private Mailing Lists | 0% {| | | |} | Need testing |} <br /> == <span id="Module_Management" class="mw-headline"> Module Management </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''50'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Can drag modules from items to center of Fitting window (auto-insert into slots) | 100% {| | | |} | Done |- | - Can drag modules from items to slots in Fitting window | 90% {| | | |} | Works for some items 12/01/2014 |- | - Can Online/Offline modules in slots in Fitting window | 70% {| | | |} | Working - NOT all modules supported. If deactivated in station they appear to reactivate when player leaves, they stay offline in the fitting window. 12/01/2014 |- | - Can remove modules from slots in Fitting window to either cargo, station item list, or container in space | 90% {| | | |} | Working - NOT all modules supported |- | - Can add/remove charges to modules slots in Fitting window | 30% {| | | |} | Does not function 12/01/2014 |- | - Can move modules from slot to slot in Fitting window | 50% {| | | |} | Can move items to empty slots. When moving back it will say there is an item in the location (doesn't clear data?) May cause server crash - needs testing. 12/01/2014 |- | - Can Activate modules on ship in space | 80% {| | | |} | Modules activate but may not do anything. 09/07/2014 |- | - Activated modules on ship in space produce desired effect | 50% {| | | |} | Needs extensive testing and tweaking. 09/07/2014 |- | - Can De-activate modules on ship in space | 20% {| | | |} | Work in progress 09/07/2014 |- | - De-activated modules on ship in space remove desired effect | 5% {| | | |} | Work in progress 09/07/2014 |- | - Gun Turrets and Missile Bays | 50% {| | | |} | Work in progress. Gun turrets are functioning in space. 09/07/2014 |- | - Passive modules | 20% {| | | |} | Work in progress - this will be expanded on later. 09/07/2014 |- | - Mining and Strip mining lasers | 20% {| | | |} | Work in progress. Needs tweaking. 09/07/2014 |- | - Other active modules | 5% {| | | |} | Work in progress - this will be expanded on later. 09/07/2014 |} <br /> == <span id="Item_Properties_Window" class="mw-headline"> Item Properties Window </span> == <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''90'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - View every item's properties | 90% {| | | |} | Regular items and ships appear normally. Blueprints do not display any information or extra tabs. 22/12/2013 |- | - View every item's picture (orange eye button) | 90% {| | | |} | Need testing |} <br /> == <span id="Market_Window_-_Buy_Orders_-_Sell_Orders" class="mw-headline"> Market Window - Buy Orders - Sell Orders </span> == === <span id="Sell_Order" class="mw-headline"> Sell Order </span> === <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''100'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Sell Order | 100% {| | | |} | Done |- | - Placing Sell Orders | 100% {| | | |} | Done |- | - Cancelling Sell Orders | 100% {| | | |} | Done |- | - Modify Sell Orders | 100% {| | | |} | Done |} <br /> === <span id="Buy_Order" class="mw-headline"> Buy Order </span> === <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 5px"> {| |width="100%"| {| | |} |} </div> </div> <div id="Current_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 8px"> {| |width="100%"| {| |  '''90'''     |} |} </div> </div> <div id="goal_value_marker" style="position:relative; width:100%"> <div style="position:absolute; width:100%; top: 11px"> {| | '''100'''     |} </div> </div> <br /> <br /> <br /> <br /> {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Buy Orders | 90% {| | | |} | Buy orders are processed money is added to sellers account. Tabs flash in wallet however information is not pulled from database. Buying from a location which has multiple sell orders for the same item may 'redirect' the purchase to the wrong sale order. 12/01/2014 |} <br /> == <span id="Assets_Window" class="mw-headline"> Assets Window </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - All Assets View | 0% {| | | |} | NOT IMPLEMENTED, confirmed (bastrian) |- | - View Assets by Region | 0% {| | | |} | NOT IMPLEMENTED |- | - View Assets by Constellation | 0% {| | | |} | NOT IMPLEMENTED |- | - View Assets by Solar System | 0% {| | | |} | NOT IMPLEMENTED |- | - View Assets by Station | 90% {| | | |} | Need testing |- | - Search Assets | 90% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Wallet_Window" class="mw-headline"> Wallet Window </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - View Journal Entries | 0% {| | | |} | NOT IMPLEMENTED |- | - View Shares Entries | 0% {| | | |} | NOT IMPLEMENTED |- | - View Orders Entries | 90% {| | | |} | NOT IMPLEMENTED |- | - View Transactions Entries | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Contracts" class="mw-headline"> Contracts </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Start Page | 50% {| | | |} | Partially Working |- | - Create Contracts | 40% {| | | |} | Partially Working |- | - Get contract info | 80% {| | | |} | Partially Working |- | - List our actual contracts | 60% {| | | |} | NOT IMPLEMENTED |- | - List available contracts | 0% {| | | |} | NOT IMPLEMENTED |- | - Delete contracts | 100% {| | | |} | Done |} <br /> == <span id="Map_System" class="mw-headline"> Map System </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Can search Solar Systems | 0% {| | | |} | NON-Functional, missing Service call |- | - Can plot routes by searching systems and adding waypoints | 90% {| | | |} | Working, need testing |} <br /> == <span id="Ship_Management_in_Space" class="mw-headline"> Ship Management in Space </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Interaction with POS modules | 0% {| | | |} | unknown |- | - Can store/retrieve ships from Ship Maintenance Arrays | 0% {| | | |} | unknown |- | - Can store/retrieve items from Corporate Hangar Arrays | 0% {| | | |} | unknown |- | - Can Anchor POS modules with appropriate roles set | 0% {| | | |} | unknown |- | - Can Online/Offline POS modules with appropriate roles set | 0% {| | | |} | unknown |- | - Can Add/Remove Fuel for Control Tower with appropriate roles set | 0% {| | | |} | unknown |- | - Can Add/Remove? Charges for Defensive Batteries with appropriate roles set | 0% {| | | |} | unknown |- | - Can Jettison items into space (make Jet-cans) | 0% {| | | |} | unknown |- | - Can open Jet-cans and Add/Remove items within them | 0% {| | | |} | unknown |- | - Can open Containers in space (anchored and unanchored) and Add/Remove items within them | 0% {| | | |} | unknown |- | - Can eject from ships in space to appear in pod | 70% {| | | |} | Partially working |- | - Ships ejected from stay in space | 90% {| | | |} | Working, need testing |- | - Can enter ships in space from pod | 90% {| | | |} | Working, need testing |- | - Can name your ship whatever you want | 100% {| | | |} | Done |} <br /> == <span id="Ship_Navigation_in_Space" class="mw-headline"> Ship Navigation in Space </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Warp-in from distant random location on LOGIN | 0% {| | | |} | NOT IMPLEMENTED |- | - Warp-out to distant random location on LOGOFF | 0% {| | | |} | NOT IMPLEMENTED |- | - Warp to celestial object off-grid (a.k.a. Warp-in bug) | 65% {| | | |} | Working better, still hacky |- | - Warp to ship or other object on-grid | 65% {| | | |} | Working better, still hacky |- | - Jumping Stargates | 90% {| | | |} | Mostly perfect, infrequent server stalls for minutes are reported |- | - Right-click -&gt; Approach, then Log Off | 0% {| | | |} | Working |- | - Right-click -&gt; Approach | 90% {| | | |} | Working |- | - Approaching Objects | 90% {| | | |} | Working |- | - Entering Stations | 90% {| | | |} | Working, need testing, sometimes a delay 09/07/2014 |- | - Exiting Stations | 90% {| | | |} | Working, however sometimes you do not exit at the station but in the center of the system. 22/12/2013 Sometimes a delay while it loads the bubble. 09/07/2014 |- | - Autopilot correctly controls ship course, warping to gates, approach to 0m on gate, and jumping to follow planned jump route waypoints. | 90% {| | | |} | Mostly working, need testing |- | - Bookmark system | 90% {| | | |} | Mostly Implemented - In the process of being fixed 09/07/2014 |- | - Bookmarks loaded from database at character login | 90% {| | | |} | Mostly Implemented - In the process of being fixed 09/07/2014 |- | - Bookmark a location in space | 90% {| | | |} | Mostly Implemented - In the process of being fixed 09/07/2014 |- | - Bookmark a station, planet, moon, stargate | 90% {| | | |} | Mostly Implemented - In the process of being fixed 09/07/2014 |- | - Delete Bookmarks | 90% {| | | |} | Mostly Implemented - In the process of being fixed 09/07/2014 |- | - Update a Bookmark | 90% {| | | |} | In the process of being fixed 09/07/2014 |- | - Copy/move Bookmark(s) to Ship Cargo | 90% {| | | |} | In the process of being fixed 09/07/2014 |} <br /> == <span id="Ship_Combat_in_Space" class="mw-headline"> Ship Combat in Space </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Can target and lock a ship using overview | 80% {| | | |} | Working, you get Insta-Lock, but progress bar moves as expected. If out of range, no error message appears - 12/01/2014 |- | - Can activate modules on target-locked ship and modules take effect on target | 0% {| | | |} | NOT IMPLEMENTED |- | - Drones | 0% {| | | |} | NOT IMPLEMENTED |- | - Launch Drones | 0% {| | | |} | NOT IMPLEMENTED |- | - Engage Enemy / Roid | 0% {| | | |} | NOT IMPLEMENTED |- | - Recall to orbit | 0% {| | | |} | NOT IMPLEMENTED |- | - Recall To Bay | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="NPC.2C_Combat.2C_Spawning.2C_AI" class="mw-headline"> NPC, Combat, Spawning, AI </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - NPC Spawning | 100% {| | | |} | NPCs can be spawned via the .spawn command. For example to spawn two Guristas &quot;.spawn 2382 2&quot; 09/07/2014 <br /> |- | - NPC aggression | 50% {| | | |} | NPCs automatically attack the player. Unfortunately they do not check the players standing. So all NPCs attack. 09/07/2014 <br /> |- | - NPC special abilities | 0% {| | | |} | NPCs cannot use any special functions at this time. 09/07/2014 |} <br /> == <span id="Scan_and_Directional_Probing" class="mw-headline"> Scan and Directional Probing </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - ??? | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Fleet_Management" class="mw-headline"> Fleet Management </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Can form fleets with other characters | 0% {| | | |} | NOT IMPLEMENTED |- | - Fleet chat window | 0% {| | | |} | NOT IMPLEMENTED |- | - Fleet management window | 0% {| | | |} | NOT IMPLEMENTED |- | - Set fleet/wing/squad commanders | 0% {| | | |} | NOT IMPLEMENTED |- | - Set fleet/wing/squad boosters | 0% {| | | |} | NOT IMPLEMENTED |- | - Set fleet/wing/squad bosses | 0% {| | | |} | NOT IMPLEMENTED |- | - Broadcast fleet notifications | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Overview_Management" class="mw-headline"> Overview Management </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Selected Item Window | 100% {| | | |} | Done |} <br /> == <span id="Corporation_Management" class="mw-headline"> Corporation Management </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Create a corporation | 100% {| | | |} | Done |- | - Manage Roles | 0% {| | | |} | NOT IMPLEMENTED |- | - Corp Hangers and divisions | 0% {| | | |} | NOT IMPLEMENTED |- | - Corp Wallet | 0% {| | | |} | NOT IMPLEMENTED |- | - Renting Office | 0% {| | | |} | NOT IMPLEMENTED |- | - Declairing War | 0% {| | | |} | NOT IMPLEMENTED |- | - Recruiting | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Alliance_Management" class="mw-headline"> Alliance Management </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Creating Alliance | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Player_Owned_Station_.28POS.29_Deployment_and_Management" class="mw-headline"> Player Owned Station (POS) Deployment and Management </span> == Server log indicates it is unwilling to &quot;spawn&quot; structure-type celestial objects (problems with Celestial object spawning system need to be resolved before this can be fixed) {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Deploying Station Structures | 0% {| | | |} | NOT IMPLEMENTED |} <br /> == <span id="Anomalies_and_Missions" class="mw-headline"> Anomalies and Missions </span> == {| |width="33%"| Service/Something |width="33%"| Status |width="33%"| Comments |- | - Allocating point in space for dungeon | 0% {| | | |} | NOT IMPLEMENTED |- | - Allocating dungeon IDs | 0% {| | | |} | NOT IMPLEMENTED |- | - Allocating spawns for dungeon | 0% {| | | |} | NOT IMPLEMENTED |- | - Organizing Mission text | 0% {| | | |} | NOT IMPLEMENTED |} |- | - Organizing Mission rewards and scripting |class=&quot;broken&quot;|0% {| | | |} ||NOT IMPLEMENTED |}<br /> == <span id="Outpost_Construction_and_Management" class="mw-headline"> Outpost Construction and Management </span> == TBD<br /> == <span id="EvE_Server_API" class="mw-headline"> EvE Server API </span> == TBD<br /> 8fb4cfaf8c31fa6b0a6ae5d7686359f96e0815fb Old Wiki:Server Status (Incursion) 0 121 147 2021-04-03T14:30:07Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Incursion|<span class="tocnumber">1</span> <span class="toctext">Incursion</span>]] ** [[#Info|<span class="tocnumber">1.1</span> <span class="toctext">Info</span>]] ** [[#Features|<span class="tocnumber">1.2</span> <span class="toctext">Features</span>]] ** [[#System_Foundation_Fundamentals|<span class="tocnumber">1.3</span> <span class="toctext">System Foundation Fundamentals</span>]] * [[#All_the_items_need_to_be_verified_under_new_Incursion_Client|<span class="tocnumber">2</span> <span class="toctext">All the items need to be verified under new Incursion Client</span>]] ** [[#General_Interface_Features|<span class="tocnumber">2.1</span> <span class="toctext">General Interface Features</span>]] ** [[#Account_and_Character_Management|<span class="tocnumber">2.2</span> <span class="toctext">Account and Character Management</span>]] ** [[#Skills_-_Certificates_-_Implants_-_Clones|<span class="tocnumber">2.3</span> <span class="toctext">Skills - Certificates - Implants - Clones</span>]] ** [[#NPC_Station_Services|<span class="tocnumber">2.4</span> <span class="toctext">NPC Station Services</span>]] ** [[#Character_Interaction_Menus|<span class="tocnumber">2.5</span> <span class="toctext">Character Interaction Menus</span>]] ** [[#Chats_-_Local_Corp_Custom_Private|<span class="tocnumber">2.6</span> <span class="toctext">Chats - Local Corp Custom Private</span>]] ** [[#EvE_Mail|<span class="tocnumber">2.7</span> <span class="toctext">EvE Mail</span>]] ** [[#Module_Management|<span class="tocnumber">2.8</span> <span class="toctext">Module Management</span>]] ** [[#Item_Properties_Window|<span class="tocnumber">2.9</span> <span class="toctext">Item Properties Window</span>]] ** [[#Market_Window_-_Buy_Orders_-_Sell_Orders|<span class="tocnumber">2.10</span> <span class="toctext">Market Window - Buy Orders - Sell Orders</span>]] *** [[#Sell_Order|<span class="tocnumber">2.10.1</span> <span class="toctext">Sell Order</span>]] *** [[#Buy_Order|<span class="tocnumber">2.10.2</span> <span class="toctext">Buy Order</span>]] ** [[#Assets_Window|<span class="tocnumber">2.11</span> <span class="toctext">Assets Window</span>]] ** [[#Wallet_Window|<span class="tocnumber">2.12</span> <span class="toctext">Wallet Window</span>]] ** [[#Contracts|<span class="tocnumber">2.13</span> <span class="toctext">Contracts</span>]] ** [[#Map_System|<span class="tocnumber">2.14</span> <span class="toctext">Map System</span>]] ** [[#Ship_Management_in_Space|<span class="tocnumber">2.15</span> <span class="toctext">Ship Management in Space</span>]] ** [[#Ship_Navigation_in_Space|<span class="tocnumber">2.16</span> <span class="toctext">Ship Navigation in Space</span>]] ** [[#Ship_Combat_in_Space|<span class="tocnumber">2.17</span> <span class="toctext">Ship Combat in Space</span>]] ** [[#Fleet_Management|<span class="tocnumber">2.18</span> <span class="toctext">Fleet Management</span>]] ** [[#Overview_Management|<span class="tocnumber">2.19</span> <span class="toctext">Overview Management</span>]] ** [[#Corporation_Management|<span class="tocnumber">2.20</span> <span class="toctext">Corporation Management</span>]] ** [[#Alliance_Management|<span class="tocnumber">2.21</span> <span class="toctext">Alliance Management</span>]] ** [[#Player_Owned_Station_.28POS.29_Deployment_and_Management|<span class="tocnumber">2.22</span> <span class="toctext">Player Owned Station (POS) Deployment and Management</span>]] ** [[#Outpost_Construction_and_Management|<span class="tocnumber">2.23</span> <span class="toctext">Outpost Construction and Management</span>]] ** [[#EvE_Server_API|<span class="tocnumber">2.24</span> <span class="toctext">EvE Server API</span>]] |} = <span id="Incursion" class="mw-headline"> Incursion </span> = === <span id="Info" class="mw-headline"> Info </span> === '''last updated: [http://wiki.evemu.dev/index.php?title=User:AknorJaden&action=edit&redlink=1 AknorJaden] 04:38, 12 March 2012 (CET)''' == <span id="Features" class="mw-headline"> Features </span> == Service/Something </div> Status Comments Login 100% N/A Character - Selection 100% N/A - Creation 100% N/A - Skill Training 100% Working, with bugs - Market Buying/Selling? 100% Testing Needed - Modules 5% Very Early Development - Fleets 0% NON-OPERATIONAL - Ship Combat 5% some aspects of targeting do work - Chatting 80% Needs testing in Incursion Client - EvE Mail 50% Broken (Failed to load mailbox) - Mining 0% NON-OPERATIONAL - Station Services 50% Mostly NOT working - Missions 0% NON-OPERATIONAL - NPCs 0% NON-OPERATIONAL - awaiting Modules - POSs 0% NON-OPERATIONAL - Corporations/Alliances 30% PARTIALLY WORKS - EvE Server API 10% OPERATIONAL, with limited API calls implemented == <span id="System_Foundation_Fundamentals" class="mw-headline"> System Foundation Fundamentals </span> == {| | Service/Something | Status | Comments |- | - Efficient, Accurate Packet Deciphering | 0% | in progress |- | - Further Mutex-ing | 0% | in progress |- | - Complete Object Attribute Management overhaul | 100% | COMPLETE |- | - Complete investigation of remaining database fields | 0% | in progress |- | - Proper spawning and item creating | 60% | Many Celestials, All Ships, All Items |- | - Item Handling | 0% | unknown |- | - Eliminate all compiler Warnings from the EVEmu solution | 100% | COMPLETE |- | - Complete rewrite/relook at Destiny | 0% | very buggy |} = <span id="All_the_items_need_to_be_verified_under_new_Incursion_Client" class="mw-headline"> All the items need to be verified under new Incursion Client </span> = == <span id="General_Interface_Features" class="mw-headline"> General Interface Features </span> == {| | Service/Something | Status | Comments |- | - Get Item Info | 100% | N/A |- | - Get Ship Info | 100% | Checked and Working |- | - Get Skill Info | 100% | N/A |- | - Get Certification Info | 100% | N/A |- | - Get Character Info | 80% | Corporation info is not there, Standing and Decorations tabs broken |- | - Get NPC Corporation Info | 0% | Broken |- | - Get Player Corporation Info | 0% | Broken |} == <span id="Account_and_Character_Management" class="mw-headline"> Account and Character Management </span> == {| | Service/Something | Status | Comments |- | - Account Login | 75% | Mostly working, character select screen data is mostly hard-coded, requires database lookup |- | - Account Banning/Kicking | 60% | In Progress |- | - Character Creation | 100% | Done |- | - Character Deletion | 40% | Working, incomplete |- | - Character entrance to last location | 100% | Done |- | - Character Window | 0% | unknown |- | - Open Skills Window | 100% | Done |- | - Open Certificate Window | 100% | Done |- | - Open Decorations Window | 0% | unknown |- | - Open Attributes Window | 100% | Done |- | - Neural Remap | 0% | Broken |- | - Open Augmentations Window | 0% | unknown |- | - Open Jump Clones Window | 0% | unknown |- | - Open Bio Window | 75% | unknown |- | - Open Employment History Window | 75% | unknown |- | - Open Standings Window | 0% | unknown |- | - Open Security Status Window | 0% | unknown |- | - Open Kill Rights Window | 0% | unknown |- | - Open Combat Log Window | 0% | unknown |} == <span id="Skills_-_Certificates_-_Implants_-_Clones" class="mw-headline"> Skills - Certificates - Implants - Clones </span> == {| | Service/Something | Status | Comments |- | - Browse Skills to train | 100% | Done |- | - Add skills to queue | 100% | Done |- | - Filter skills that don't fit in queue time remaining | 100% | Done |- | - Apply changes to skill queue | 100% | Done |- | - Skill training time | 100% | Done |- | - Right-click add skill to queue from Skills Window in Character Window | 100% | Done |- | - Certificate Awarding | 0% | BROKEN |} == <span id="NPC_Station_Services" class="mw-headline"> NPC Station Services </span> == {| | Service/Something | Status | Comments |- | - In-station Guests List | 90% | Working, with bugs |- | - Can repackage ships/items | 0% | Broken |- | - Can assemble ships from packaged state | 100% | Done |- | - Can leave/make active ships | 90% | Need more Testing, leaving ship in station is broken |- | - Can initiate and finalize trades of items/ships | 0% | Broken |- | - Repair Services | 0% | unknown |- | - Insurance Services | 0% | Broken |- | - Medical Services | 0% | unknown |- | - Clone upgrade | 0% | unknown |- | - Clone transfer | 0% | unknown |- | - Jump clone installation | 0% | unknown |- | - Items window | 0% | unknown |- | - Can merge items | 100% | Done |- | - Can trash/split/trade items | 60% | Partially Working - Trade not |- | - Can open/close containers | 0% | unknown |- | - Can move items into/out of containers | 0% | unknown |- | - Can inject skills from items | 100% | Done |- | - Agents Tab | 50% | Testing needed |- | - Can initiate conversation with station agent | 0% | Broken |} == <span id="Character_Interaction_Menus" class="mw-headline"> Character Interaction Menus </span> == {| | Service/Something | Status | Comments |- | - Right-click Menu in Local | 100% | Done |- | - Right-click Menu in Chats other than Local | 100% | Done |- | - Right-click Menu in Station | 100% | Done |} == <span id="Chats_-_Local_Corp_Custom_Private" class="mw-headline"> Chats - Local Corp Custom Private </span> == {| | Service/Something | Status | Comments |- | - Characters show up in Local | 100% | Kinda Working, need testing, character names do not get updated to subsequent clients logging into the system after the first |- | - Chat in Local | 100% | Done |- | - Characters show up in Corp | 90% | character names do not get updated for subsequent character logins |- | - Chat in Corp | 90% | character names do not get updated for subsequent character logins |- | - Initiate Private Conversation Chat | 0% | Broken |- | - Create Private Chat Channels | 70% | Working, need testing, password checks and moderators NON-FUNCTIONAL |- | - Joining Created Private Chat Channels | 90% | working, need testing |- | - Chat in Private Chat Channels | 100% | Done |- | - Load Subscribed Public and Private Chat Channels Upon Login | 95% | Mostly working, one empty-named channel loaded for each character (server attempts to load a channel with ID = characterID) |- | - Configure Private Chat Channels | 60% | Working, but need more work |- | - Leave Chat Channels | 100% | Done |- | - Un-subscribe (leave) from Private Chat Channel | 100% | Done |- | - Character and Corporation Lookup | 100% | Done |} == <span id="EvE_Mail" class="mw-headline"> EvE Mail </span> == {| | Service/Something | Status | Comments |- | - Can Send Eve-mails | 50% | Broken |- | - Can Receive Eve-mails | 0% | Unknown |- | - Can View Eve-mails | 40% | Broken (unable to load mailbox) |- | - Can Reply-to Eve-mails | 50% | Unknown |- | - Can Send Eve-mails to Groups (like Corp) | 0% | Broken |- | - Can Create new Private Mailing Lists | 0% | Need Testing |- | - Newly Created Private Mailing Lists Saved to DB/Restored from DB | 0% | need testing |- | - Can Send/Receive messages in new Private Mailing Lists | 0% | Need testing |} == <span id="Module_Management" class="mw-headline"> Module Management </span> == '''Current Status:''' Need SQL Information. {| | Service/Something | Status | Comments |- | - Can drag modules from items to center of Fitting window (auto-insert into slots | 0% | Broken |- | - Can drag modules from items to slots in Fitting window | 90% | Need testing |- | - Can Online/Offline modules in slots in Fitting window | 90% | Need testing |- | - Can remove modules from slots in Fitting window to either cargo, station item list, or container in space | 90% | Need testing |- | - Can add/remove charges to modules slots in Fitting window | 30% | Somewhat working |- | - Can move modules from slot to slot in Fitting window | 70% | working, but need testing |- | - Can Activate modules on ship in space | 0% | NON-FUNCTIONAL |- | - Activated modules on ship in space produce desired effect | 0% | NON-FUNCTIONAL |- | - Can De-activate modules on ship in space | 0% | Unable to test. Modules need to activate first |- | - De-activated modules on ship in space remove desired effect | 0% | Unable to test. Modules need to activate first |} == <span id="Item_Properties_Window" class="mw-headline"> Item Properties Window </span> == {| | Service/Something | Status | Comments |- | - View every item's properties | 100% | Done |- | - View every item's picture (orange eye button) | 90% | Need testing |} == <span id="Market_Window_-_Buy_Orders_-_Sell_Orders" class="mw-headline"> Market Window - Buy Orders - Sell Orders </span> == === <span id="Sell_Order" class="mw-headline"> Sell Order </span> === {| | Service/Something | Status | Comments |- | - Sell Order | 100% | Done |- | - Placing Sell Orders | 100% | Done |- | - Cancelling Sell Orders | 10% | Done |- | - Modify Sell Orders | 100% | Done |} === <span id="Buy_Order" class="mw-headline"> Buy Order </span> === {| | Service/Something | Status | Comments |- | - Buy Orders | 0% | Unknown |} == <span id="Assets_Window" class="mw-headline"> Assets Window </span> == {| | Service/Something | Status | Comments |- | - All Assets View | 0% | Broken, confirmed (bastrian) |- | - View Assets by Region | 0% | Broken |- | - View Assets by Constellation | 0% | Broken |- | - View Assets by Solar System | 0% | Broken |- | - View Assets by Station | 90% | Need testing |- | - Search Assets | 90% | Need testing |} == <span id="Wallet_Window" class="mw-headline"> Wallet Window </span> == {| | Service/Something | Status | Comments |- | - View Journal Entries | 0% | Broken |- | - View Shares Entries | 0% | Broken |- | - View Orders Entries | 90% | Need testing |- | - View Transactions Entries | 0% | Broken |} == <span id="Contracts" class="mw-headline"> Contracts </span> == {| | Service/Something | Status | Comments |- | - Start Page | 50% | Partially Working |- | - Create Contracts | 40% | Partially Working |- | - Get contract info | 80% | Partially Working |- | - List our actual contracts | 60% | Broken |- | - List available contracts | 0% | Broken |- | - Delete contracts | 100% | Done |} == <span id="Map_System" class="mw-headline"> Map System </span> == {| | Service/Something | Status | Comments |- | - Can plot routes by searching systems and adding waypoints | 90% | Working, need testing |} == <span id="Ship_Management_in_Space" class="mw-headline"> Ship Management in Space </span> == {| | Service/Something | Status | Comments |- | - Interaction with POS modules | 0% | unknown |- | - Can store/retrieve ships from Ship Maintenance Arrays | 0% | unknown |- | - Can store/retrieve items from Corporate Hangar Arrays | 0% | unknown |- | - Can Anchor POS modules with appropriate roles set | 0% | unknown |- | - Can Online/Offline POS modules with appropriate roles set | 0% | unknown |- | - Can Add/Remove Fuel for Control Tower with appropriate roles set | 0% | unknown |- | - Can Add/Remove? Charges for Defensive Batteries with appropriate roles set | 0% | unknown |- | - Can Jettison items into space (make Jet-cans) | 0% | unknown |- | - Can open Jet-cans and Add/Remove items within them | 0% | unknown |- | - Can open Containers in space (anchored and unanchored) and Add/Remove items within them | 0% | unknown |- | - Can eject from ships in space to appear in pod | 70% | Partially working |- | - Ships ejected from stay in space | 90% | Working, need testing |- | - Can enter ships in space from pod | 90% | Working, need testing |} == <span id="Ship_Navigation_in_Space" class="mw-headline"> Ship Navigation in Space </span> == {| | Service/Something | Status | Comments |- | - Warp-in from distant random location on LOGIN | 0% | UNSUPPORTED |- | - Warp-out to distant random location on LOGOFF | 0% | UNSUPPORTED |- | - Warp to celestial object off-grid (a.k.a. Warp-in bug) | 65% | Working better, still hacky |- | - Warp to ship or other object on-grid | 65% | Working better, still hacky |- | - Right-click -&gt; Approach, then Log Off | 0% | Working |- | - Right-click -&gt; Approach | 90% | Working |- | - Approaching Objects | 90% | Working |- | - Entering Stations | 90% | Working, need testing |- | - Exiting Stations | 90% | Working, need testing |- | - Autopilot correctly controls ship course, warping to gates, approach to 0m on gate, and jumping to follow planned jump route waypoints. | 90% | Mostly working, need testing |- | - Bookmark system | 90% | Mostly working |- | - Bookmarks loaded from database at character login | 90% | Mostly working |- | - Bookmark a location in space | 90% | Mostly working |- | - Bookmark a station, planet, moon, stargate | 90% | Mostly working |- | - Delete Bookmarks | 90% | In Progress |- | - Update a Bookmark | 90% | In Progress |- | - Copy/move Bookmark(s) to Ship Cargo | 90% | In Progress |} == <span id="Ship_Combat_in_Space" class="mw-headline"> Ship Combat in Space </span> == {| | Service/Something | Status | Comments |- | - Can target and lock a ship using overview | 80% | Working |- | - Can activate modules on target-locked ship and modules take effect on target | 0% | unknown |- | - Drones | 0% | BROKEN |- | - Launch Drones | 0% | BROKEN |- | - Engage Enemy / Roid | 0% | BROKEN |- | - Recall to orbit | 0% | BROKEN |- | - Recall To Bay | 0% | BROKEN |} == <span id="Fleet_Management" class="mw-headline"> Fleet Management </span> == {| | Service/Something | Status | Comments |- | - Can form fleets with other characters | 0% | BROKEN |- | - Fleet chat window | 0% | unknown |- | - Fleet management window | 0% | unknown |- | - Set fleet/wing/squad commanders | 0% | unknown |- | - Set fleet/wing/squad boosters | 0% | unknown |- | - Set fleet/wing/squad bosses | 0% | unknown |- | - Broadcast fleet notifications | 0% | unknown |} == <span id="Overview_Management" class="mw-headline"> Overview Management </span> == {| | Service/Something | Status | Comments |- | - Selected Item Box | 0% | BROKEN |} == <span id="Corporation_Management" class="mw-headline"> Corporation Management </span> == {| | Service/Something | Status | Comments |- | - Create a corporation | 100% | Done |- | - Manage Roles | 0% | BROKEN |- | - Corp Hangers and divisions | 0% | BROKEN |- | - Corp Wallet | 0% | BROKEN |- | - Renting Office | 0% | BROKEN |- | - Declairing War | 0% | BROKEN |- | - Recruiting | 0% | BROKEN |} == <span id="Alliance_Management" class="mw-headline"> Alliance Management </span> == {| | Service/Something | Status | Comments |- | - Creating Alliance | 0% | BROKEN - Progress unknown |} == <span id="Player_Owned_Station_.28POS.29_Deployment_and_Management" class="mw-headline"> Player Owned Station (POS) Deployment and Management </span> == Server log indicates it is unwilling to &quot;spawn&quot; structure-type celestial objects (problems with Celestial object spawning system need to be resolved before this can be fixed) {| | Service/Something | Status | Comments |- | - Deploying Station Structures | 0% | BROKEN - Progress unknown |} == <span id="Outpost_Construction_and_Management" class="mw-headline"> Outpost Construction and Management </span> == == <span id="EvE_Server_API" class="mw-headline"> EvE Server API </span> == 68ad5fb24e3f54769455a7b9640f87a56ed8eea3 Old Wiki:Service Descriptions 0 122 148 2021-04-03T14:30:17Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="EVE_Service_Information" class="mw-headline"> '''EVE Service Information''' </span> == the communication framework of eve is based around the concept of services. There are a ton of them, and CCP likes to give them unusual names. This page is to document the names and functionalities of each service. <br /> == <span id="Server_Services" class="mw-headline"> '''Server Services''' </span> == * authentication - Login * account - Overall account information * character - char select, char creation, many char related things * CharMgr - Character Management, probably things like inventory, drones, speed? maybe * LSC - Large Scale Chat - the chat and mail service * lookup - char name resolution * config - Server-side char specific settings * corporationSvc - faction info * corpRegistry - per-player corp stuff? (Possible Corp Creation Stuff?) * corpStationMgr - corp related things at a station (Eg. Corp Hanger, Role Permisions * dogmaIM - a lot of char-specific stuff * invbroker - inventory management * beyonce - Server side of the destiny stuff (renderer), talks to michelle * insuranceSvc - insurance stuff? * ship - ship stuff? * standing2 - Standings * stationSvc - a very minimal amount of station stuff. * station - some station stuff * agentMgr - agent stuff * alert - bean counting, exception counting/catching stuff.. * billMgr - bills? * bookmark - bookmark? * map - map stuff * objectCaching - cached object retreval * onlineStatus - intial status stuff * tutorialSvc - tutorial stuff ----- <br /> == <span id="Client_Services" class="mw-headline"> '''Client Services''' </span> == * michelle - The client side interface into the destiny renderer * godma - client side of dogmaIM? </div> 5f6299f434b4b98b4decc3e71215fec28dc5ba45 Old Wiki:Ship Bonus Modifiers Complete List 0 123 149 2021-04-03T14:30:27Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> ''[[Category_Module_Manager.html|Module Manager]] &lt;-- Main Article'' {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#SHIP_BONUS_MODIFIERS_LIST|<span class="tocnumber">1</span> <span class="toctext">SHIP BONUS MODIFIERS LIST</span>]] * [[#FRIGATES|<span class="tocnumber">2</span> <span class="toctext">FRIGATES</span>]] ** [[#Punisher_-_typeID_597|<span class="tocnumber">2.1</span> <span class="toctext">Punisher - typeID 597</span>]] ** [[#Merlin_-_Frigate_-_typeID_603|<span class="tocnumber">2.2</span> <span class="toctext">Merlin - Frigate - typeID 603</span>]] ** [[#Imicus_-_Frigate_-_typeID_607|<span class="tocnumber">2.3</span> <span class="toctext">Imicus - Frigate - typeID 607</span>]] ** [[#Probe_-_Frigate_-_typeID_586|<span class="tocnumber">2.4</span> <span class="toctext">Probe - Frigate - typeID 586</span>]] * [[#CRUISERS|<span class="tocnumber">3</span> <span class="toctext">CRUISERS</span>]] ** [[#Stabber_-_typeID_622|<span class="tocnumber">3.1</span> <span class="toctext">Stabber - typeID 622</span>]] ** [[#Moa_-_typeID_623|<span class="tocnumber">3.2</span> <span class="toctext">Moa - typeID 623</span>]] ** [[#Maller_-_typeID_624|<span class="tocnumber">3.3</span> <span class="toctext">Maller - typeID 624</span>]] ** [[#Exequror_-_typeID_634|<span class="tocnumber">3.4</span> <span class="toctext">Exequror - typeID 634</span>]] * [[#TECH_2_HEAVY_ASSAULT_CRUISERS|<span class="tocnumber">4</span> <span class="toctext">TECH 2 HEAVY ASSAULT CRUISERS</span>]] ** [[#Vagabond_-_typeID_11999|<span class="tocnumber">4.1</span> <span class="toctext">Vagabond - typeID 11999</span>]] ** [[#Muninn_-_typeID_12015|<span class="tocnumber">4.2</span> <span class="toctext">Muninn - typeID 12015</span>]] * [[#FACTION_CRUISERS|<span class="tocnumber">5</span> <span class="toctext">FACTION CRUISERS</span>]] ** [[#Cynabal_-_typeID_17720|<span class="tocnumber">5.1</span> <span class="toctext">Cynabal - typeID 17720</span>]] ** [[#Ashimmu_-_typeID_12015|<span class="tocnumber">5.2</span> <span class="toctext">Ashimmu - typeID 12015</span>]] * [[#TECH_3_STRATEGIC_CRUISERS|<span class="tocnumber">6</span> <span class="toctext">TECH 3 STRATEGIC CRUISERS</span>]] ** [[#29990_Loki|<span class="tocnumber">6.1</span> <span class="toctext">29990 Loki</span>]] * [[#BATTLECRUISERS|<span class="tocnumber">7</span> <span class="toctext">BATTLECRUISERS</span>]] ** [[#.3F_-_typeID_.3F|<span class="tocnumber">7.1</span> <span class="toctext">? - typeID ?</span>]] * [[#BATTLESHIPS|<span class="tocnumber">8</span> <span class="toctext">BATTLESHIPS</span>]] ** [[#.3F_-_typeID_.3F_2|<span class="tocnumber">8.1</span> <span class="toctext">? - typeID ?</span>]] |} <br /> = <span id="SHIP_BONUS_MODIFIERS_LIST" class="mw-headline"> SHIP BONUS MODIFIERS LIST </span> = '''STATUS''': '''2.12%''' COMPLETE - '''8''' of '''376''' ships analyzed = <span id="FRIGATES" class="mw-headline"> FRIGATES </span> = == <span id="Punisher_-_typeID_597" class="mw-headline"> Punisher - typeID 597 </span> == {| |+ dgmShipBonusModifiers - typeID 597 - Punisher frigate | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 511 | 3331 | 464 | 6 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53&quot; | 1 | 10% bonus to Small Energy Turret capacitor use per level of Amarr Frigate skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1804 | 3331 | 485 | 267 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to armor resistances per level of Amarr Frigate skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1805 | 3331 | 485 | 268 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to armor resistances per level of Amarr Frigate skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1806 | 3331 | 485 | 269 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to armor resistances per level of Amarr Frigate skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1807 | 3331 | 485 | 270 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to armor resistances per level of Amarr Frigate skill level | |- | | | | | | | |} == <span id="Merlin_-_Frigate_-_typeID_603" class="mw-headline"> Merlin - Frigate - typeID 603 </span> == {| |+ dgmShipBonusModifiers - typeID 603 - Merlin frigate | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 882 | 3330 | 588 | 54 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;74&quot; | 1 | 10% bonus to Small Hybrid Turret optimal range per skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1816 | 3330 | 463 | 271 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield EM resistances per skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1817 | 3330 | 463 | 274 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield Thermal resistances per skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1819 | 3330 | 463 | 273 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield Kinetic resistances per skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1820 | 3330 | 463 | 272 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield Explosive resistances per skill level | |- | | | | | | | |} == <span id="Imicus_-_Frigate_-_typeID_607" class="mw-headline"> Imicus - Frigate - typeID 607 </span> == {| |+ dgmShipBonusModifiers - typeID 607 - Imicus frigate | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 479 | 3328 | 464 | 458 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;&quot; | 0 | 5% bonus to drone range per level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 4167 | 3328 | 586 | 1371 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1504 | 1401 | &quot;479&quot; | 0 | 5% increase to scan strength of probes per level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 4596 | 3328 | 1625 | 281 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1504 | 1401 | &quot;492&quot; | 0 | 5% reduction to survey probe flight time per level | |- | | | | | | | |} == <span id="Probe_-_Frigate_-_typeID_586" class="mw-headline"> Probe - Frigate - typeID 586 </span> == {| |+ dgmShipBonusModifiers - typeID 586 - Probe frigate | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 458 | 3329 | 460 | 38 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus cargo capacity per skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 4166 | 3329 | 587 | 1371 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1505 | 1401 | &quot;479&quot; | 0 | 5% bonus to scan strength of probes per skill level | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 4597 | 3329 | 1626 | 281 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1505 | 1401 | &quot;&quot; | 0 | 5% reduction to survey probe flight time per level | |- | | | | | | | |} = <span id="CRUISERS" class="mw-headline"> CRUISERS </span> = == <span id="Stabber_-_typeID_622" class="mw-headline"> Stabber - typeID 622 </span> == {| |+ dgmShipBonusModifiers - typeID 622 - Stabber cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 602 | 3333 | 489 | 51 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 5% bonus to Medium Projectile Turret firing speed per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 934 | 3333 | 659 | 37 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to max velocity per level of Minmatar Cruiser skill | |- | | | | | | | |} == <span id="Moa_-_typeID_623" class="mw-headline"> Moa - typeID 623 </span> == {| |+ dgmShipBonusModifiers - typeID 623 - Moa cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 521 | 3334 | 487 | 54 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;74&quot; | 2 | 10% bonus to Medium Hybrid Turret optimal range per level of Caldari Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1812 | 3334 | 657 | 271 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield resistance per level of Caldari Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1813 | 3334 | 657 | 274 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield resistance per level of Caldari Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1814 | 3334 | 657 | 273 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield resistance per level of Caldari Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1815 | 3334 | 657 | 272 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield resistance per level of Caldari Cruiser skill | |- | | | | | | | |} == <span id="Maller_-_typeID_624" class="mw-headline"> Maller - typeID 624 </span> == {| |+ dgmShipBonusModifiers - typeID 624 - Maller cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 516 | 3335 | 478 | 54 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53&quot; | 2 | 10% bonus to Medium Energy Turret capacitor use per level of Amarr Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 958 | 3335 | 656 | 267 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to all Armor Resistances per level of Amarr Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 959 | 3335 | 656 | 268 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to all Armor Resistances per level of Amarr Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 960 | 3335 | 656 | 269 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to all Armor Resistances per level of Amarr Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 961 | 3335 | 656 | 270 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to all Armor Resistances per level of Amarr Cruiser skill | |- | | | | | | | |} == <span id="Exequror_-_typeID_634" class="mw-headline"> Exequror - typeID 634 </span> == {| |+ dgmShipBonusModifiers - typeID 634 - Exequror cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 930 | 3332 | 658 | 38 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 10% bonus to Cargo Capacity per level of Gallente Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1969 | 3332 | 486 | 271 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;325&quot; | 0 | 10% bonus to capacitor need of remote armor repair system per level of Gallente Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 2135 | 3332 | 658 | 274 | 2012 | 2013 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;325&quot; | 0 | 500% bonus to range of remote armor repair systems per level of Gallente Cruiser skill | |- | | | | | | | |} = <span id="TECH_2_HEAVY_ASSAULT_CRUISERS" class="mw-headline"> TECH 2 HEAVY ASSAULT CRUISERS </span> = == <span id="Vagabond_-_typeID_11999" class="mw-headline"> Vagabond - typeID 11999 </span> == {| |+ dgmShipBonusModifiers - typeID 11999 - Vagabond Heavy Assault cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 602 | 3333 | 489 | 51 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 5% bonus to Medium Projectile Turret firing speed per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 934 | 3333 | 659 | 37 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to max velocity per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1060 | 16591 | 692 | 158 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 10% bonus to Medium Projectile Turret falloff range per level of Heavy Assault Ship skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1087 | 16591 | 693 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 5% bonus to Medium Projectile Turret damage per level of Heavy ssault Ship skill | |- | | | | | | | |} == <span id="Muninn_-_typeID_12015" class="mw-headline"> Muninn - typeID 12015 </span> == {| |+ dgmShipBonusModifiers - typeID 12015 - Muninn Heavy Assault cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 602 | 3333 | 489 | 51 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 5% bonus to Medium Projectile Turret rate of fire per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 968 | 3333 | 659 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to Medium Projectile Turret damage per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1057 | 16591 | 692 | 54 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 10% bonus to Medium Projectile Turret optimal range per level of Heavy Assault Ship skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1063 | 16591 | 693 | 160 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 7.5% bonus to Medium Projectile Turret tracking speed per level of Heavy ssault Ship skill | |- | | | | | | | |} = <span id="FACTION_CRUISERS" class="mw-headline"> FACTION CRUISERS </span> = == <span id="Cynabal_-_typeID_17720" class="mw-headline"> Cynabal - typeID 17720 </span> == {| |+ dgmShipBonusModifiers - typeID 17720 - Cynabal Angel Cartel faction cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1232 | 0 | 793 | 51 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | Special Ability: 25% bonus to Medium Projectile Turret rate of fire | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 968 | 3333 | 659 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;55&quot; | 2 | 10% bonus to Medium Projectile Turret damage per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 4512 | 3332 | 486 | 158 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 10% bonus to Medium Projectile Turret falloff per level of Gallente Cruiser skill | |- | | | | | | | |} == <span id="Ashimmu_-_typeID_12015" class="mw-headline"> Ashimmu - typeID 12015 </span> == '''TO BE DONE''' {| |+ dgmShipBonusModifiers - typeID 12015 - Ashimmu Blood Raiders faction cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 602 | 3333 | 489 | 51 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53&quot; | 2 | Special Ability: 100% bonus to Medium Energy Turret damage | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 968 | 3333 | 659 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 15% bonus to Energy Vampire and Energy Neutralizer drain amount per level of Amarr Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1057 | 16591 | 692 | 54 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 10% bonus to the velocity factor of stasis webifiers per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1063 | 16591 | 693 | 160 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 7.5% bonus to Medium Projectile Turret tracking speed per level of Heavy ssault Ship skill | |- | | | | | | | |} = <span id="TECH_3_STRATEGIC_CRUISERS" class="mw-headline"> TECH 3 STRATEGIC CRUISERS </span> = == <span id="29990_Loki" class="mw-headline"> 29990 Loki </span> == {| |+ dgmShipBonusModifiers - typeID 29990 - Loki Strategic cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 4190 | 30653 | 1506 | 51 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;-1,1211&quot; | 1 | 5% Reduction in the amount of heat damage absorbed by modules per level of Minmatar Strategic Cruiser skill. -1 here indicates to the Module Manager that any module with attribute 1211 'heatDamage' should have this effect applied to it. | |- | | | | | | | |} = <span id="BATTLECRUISERS" class="mw-headline"> BATTLECRUISERS </span> = == <span id=".3F_-_typeID_.3F" class="mw-headline"> ? - typeID ? </span> == '''TO BE DONE''' {| |+ dgmShipBonusModifiers - typeID 622 - Stabber cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 602 | 3333 | 489 | 51 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 0 | 5% bonus to Medium Projectile Turret firing speed per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 934 | 3333 | 659 | 37 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to max velocity per level of Minmatar Cruiser skill | |- | | | | | | | |} = <span id="BATTLESHIPS" class="mw-headline"> BATTLESHIPS </span> = == <span id=".3F_-_typeID_.3F_2" class="mw-headline"> ? - typeID ? </span> == '''TO BE DONE''' {| |+ dgmShipBonusModifiers - typeID 622 - Stabber cruiser | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 602 | 3333 | 489 | 51 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 0 | 5% bonus to Medium Projectile Turret firing speed per level of Minmatar Cruiser skill | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 934 | 3333 | 659 | 37 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to max velocity per level of Minmatar Cruiser skill | |- | | | | | | | |} </div> e0f6a529d9fd3cfa2adc40d553d9eeb7489768f7 Old Wiki:Ship Combat 0 124 150 2021-04-03T14:30:37Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_Game_Operation.html|Game Operation]] / '''Ship Combat''' (you are here) |} <br /> {| |width="100%"| {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#SHIP_AND_OTHER_VESSEL.2FSTRUCTURE_COMBAT_WORK|<span class="tocnumber">1</span> <span class="toctext">SHIP AND OTHER VESSEL/STRUCTURE COMBAT WORK</span>]] ** [[#SPACE_OPERATIONS|<span class="tocnumber">1.1</span> <span class="toctext">SPACE OPERATIONS</span>]] *** [[#Sources|<span class="tocnumber">1.1.1</span> <span class="toctext">Sources</span>]] ** [[#TARGETING|<span class="tocnumber">1.2</span> <span class="toctext">TARGETING</span>]] ** [[#DAMAGE|<span class="tocnumber">1.3</span> <span class="toctext">DAMAGE</span>]] ** [[#EFFECTS|<span class="tocnumber">1.4</span> <span class="toctext">EFFECTS</span>]] ** [[#DEATH|<span class="tocnumber">1.5</span> <span class="toctext">DEATH</span>]] |} |} = <span id="SHIP_AND_OTHER_VESSEL.2FSTRUCTURE_COMBAT_WORK" class="mw-headline"> SHIP AND OTHER VESSEL/STRUCTURE COMBAT WORK </span> = An equation to test LaTeX: <span class="tex2jax_ignore"> &lt;math&gt; \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} &lt;/math&gt; </span> <br /> == <span id="SPACE_OPERATIONS" class="mw-headline"> SPACE OPERATIONS </span> == * Accurate Positioning: since we cannot emulate destiny ship movement calculations exactly we mave have to force a '/syncloc' on every ship object (exclude drones) at some interval of destiny ticks with the first interval counting ticks from the moment the DestinyManager instance for that ship was created * Collisions: we need to implement purely elastic 3D collisions that conserve momentum on both parties involved and ONLY with ships. The collision should calculate a vector of travel along which a GoToDirection() action is forced with a speed calculated from the conservation of momentum. The previous active ship movement should be queued as the collision is detected then on the next tick after the collision's GoToDirection is ordered, thae queued action should immediately resume. At this time, to ensure accurate positioning of both ships involved, issue a '/synloc' on both ships. ** Collision Detection: The only way to detect collisions is to query distance to and radius of every collidable object in the current bubble, on every destiny tick. Then if the result of distance is &lt;= to other object radius plus this ship's radius then a collision is detected. ** Do all this and see how bad the /syncloc results are after a bunch of different collisions at different speeds for both ships. Also, evaluate the increase in load on the cpu by the server. <br /> === <span id="Sources" class="mw-headline"> Sources </span> === * [http://wiki.eveonline.com/en/wiki/Aligning Aligning] * [http://eve.allakhazam.com/wiki/EVE_Guide_Top_Speed_Calculation_Guide Max Velocity] == <span id="TARGETING" class="mw-headline"> TARGETING </span> == * Initiating a Target Lock: Evemu should support the following aspects of targeting: ** Attempt to Lock Target - receive packet, check max targeting distance attribute of ship, and if within that distance to target, proceed to lock target, send target lock packets to aggressor and targeted ship clients ** Unlock Target - when requested by aggressor, this should happen immediately *** Loss of Target Lock **** when a target travels beyond the max targeting range of the aggressor, that target's lock will be lost immediately **** when the aggressor jumps a gate, when the aggressor docks in a station, when the aggressor becomes jammed by another ship, ALL targets' locks will be lost <br /> == <span id="DAMAGE" class="mw-headline"> DAMAGE </span> == * we need to make application of damage to ships, drones, modules, and structures work ** Damage.cpp file holds all the work so far. Should this be separated out to each class' cpp file? *** Adequately document the procedure for applying damage to a target object *** Tracking attributes and sensor attributes must be used to determine the probability that a target is actually hit with a weapon and the weapon and charge attributes must be used to determine how much damage points and which of the four types are actually applied to the target object <br /> == <span id="EFFECTS" class="mw-headline"> EFFECTS </span> == * we need to consider how effects are applied to a target object since no damage is involved in this process, only changes in either ship attributes or ship state (speed, warp ability, cloak, others?) ** we need a message passing mechanism that can pass information on an effect and really a message that contains an array of 1 or more effects that an aggressor ship is applying to a target object *** INFO: **** aggressor shipID **** effectID or pointer to effect class for that effectID **** specific data regarding how said effect applies to target (list of attribute modifiers?) <br /> == <span id="DEATH" class="mw-headline"> DEATH </span> == * we need to make ship, drone, structure explosions work in the client ** when deemed to happen, the item should be destroyed in memory and database along with its inventory but before that is done, the wreck should be spawned and its inventory filled with the randomly selected list of inventory items for the 'loot drop' *** how do we know which wreck ID matches the ship, structure that was destroyed? **** there is no linkage of these typeIDs in the database, so we'll have to create them in our own database table. there are 279 entries in 'invTypes' with 'wreck' in description.. not that bad :/ ** Kill mails: we need to create a system that creates properly formatted kill mails and delivers them to the players and i imagine they are all stored in the database too so they can be retreived via API keys for out-of-game [[Out_of_Game_Player_Tools.html#EVEmu_Killboard|killboards]] * ** Capsule death: when capsule is destroyed, NO wreck is spawned, but a corpse with char's name IS then the character whose capsule was destroyed should be moved into a new clone (and capsule with a noob ship) into the station last selected for medical clone, set clone as grade Alpha *** we need clone station selection AND clone upgrades to be working to support capsule death </div> 1c5edd98e28e37e0745941c2cd52bf7237e3f79b Old Wiki:Skill Bonus Modifiers Complete List 0 125 151 2021-04-03T14:30:47Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> ''[[Category_Module_Manager.html|Module Manager]] &lt;-- Main Article'' {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#SKILL_BONUS_MODIFIERS_LIST|<span class="tocnumber">1</span> <span class="toctext">SKILL BONUS MODIFIERS LIST</span>]] * [[#DRONES|<span class="tocnumber">2</span> <span class="toctext">DRONES</span>]] * [[#ELECTRONICS|<span class="tocnumber">3</span> <span class="toctext">ELECTRONICS</span>]] ** [[#3426_Electronics|<span class="tocnumber">3.1</span> <span class="toctext">3426 Electronics</span>]] ** [[#3429_Targeting|<span class="tocnumber">3.2</span> <span class="toctext">3429 Targeting</span>]] ** [[#3430_Multitasking|<span class="tocnumber">3.3</span> <span class="toctext">3430 Multitasking</span>]] ** [[#3432_Electronics_Upgrades|<span class="tocnumber">3.4</span> <span class="toctext">3432 Electronics Upgrades</span>]] ** [[#3428_Long_Range_Targeting|<span class="tocnumber">3.5</span> <span class="toctext">3428 Long Range Targeting</span>]] ** [[#3431_Signature_Analysis|<span class="tocnumber">3.6</span> <span class="toctext">3431 Signature Analysis</span>]] * [[#ENGINEERING|<span class="tocnumber">4</span> <span class="toctext">ENGINEERING</span>]] ** [[#3413_Engineering|<span class="tocnumber">4.1</span> <span class="toctext">3413 Engineering</span>]] ** [[#3417_Energy_Systems_Operation|<span class="tocnumber">4.2</span> <span class="toctext">3417 Energy Systems Operation</span>]] ** [[#3418_Energy_Management|<span class="tocnumber">4.3</span> <span class="toctext">3418 Energy Management</span>]] ** [[#3419_Shield_Management|<span class="tocnumber">4.4</span> <span class="toctext">3419 Shield Management</span>]] ** [[#3424_Energy_Grid_Upgrades|<span class="tocnumber">4.5</span> <span class="toctext">3424 Energy Grid Upgrades</span>]] * [[#GUNNERY|<span class="tocnumber">5</span> <span class="toctext">GUNNERY</span>]] ** [[#3300_Gunnery|<span class="tocnumber">5.1</span> <span class="toctext">3300 Gunnery</span>]] ** [[#3310_Rapid_Firing|<span class="tocnumber">5.2</span> <span class="toctext">3310 Rapid Firing</span>]] ** [[#3311_Sharpshooter|<span class="tocnumber">5.3</span> <span class="toctext">3311 Sharpshooter</span>]] ** [[#3312_Motion_Prediction|<span class="tocnumber">5.4</span> <span class="toctext">3312 Motion Prediction</span>]] ** [[#3315_Surgical_Strike|<span class="tocnumber">5.5</span> <span class="toctext">3315 Surgical Strike</span>]] ** [[#3316_Controlled_Bursts|<span class="tocnumber">5.6</span> <span class="toctext">3316 Controlled Bursts</span>]] ** [[#3317_Trajectory_Analysis|<span class="tocnumber">5.7</span> <span class="toctext">3317 Trajectory Analysis</span>]] ** [[#3318_Weapon_Upgrades|<span class="tocnumber">5.8</span> <span class="toctext">3318 Weapon Upgrades</span>]] ** [[#11207_Advanced_Weapon_Upgrades|<span class="tocnumber">5.9</span> <span class="toctext">11207 Advanced Weapon Upgrades</span>]] ** [[#3304_Medium_Hybrid_Turret|<span class="tocnumber">5.10</span> <span class="toctext">3304 Medium Hybrid Turret</span>]] ** [[#3305_Medium_Projectile_Turret|<span class="tocnumber">5.11</span> <span class="toctext">3305 Medium Projectile Turret</span>]] ** [[#3306_Medium_Energy_Turret|<span class="tocnumber">5.12</span> <span class="toctext">3306 Medium Energy Turret</span>]] * [[#INDUSTRY|<span class="tocnumber">6</span> <span class="toctext">INDUSTRY</span>]] * [[#LEADERSHIP|<span class="tocnumber">7</span> <span class="toctext">LEADERSHIP</span>]] * [[#MISSILE_LAUNCHER_OPERATION|<span class="tocnumber">8</span> <span class="toctext">MISSILE LAUNCHER OPERATION</span>]] * [[#MECHANICS|<span class="tocnumber">9</span> <span class="toctext">MECHANICS</span>]] ** [[#3392_Mechanics|<span class="tocnumber">9.1</span> <span class="toctext">3392 Mechanics</span>]] ** [[#3394_Hull_Upgrades|<span class="tocnumber">9.2</span> <span class="toctext">3394 Hull Upgrades</span>]] * [[#NAVIGATION|<span class="tocnumber">10</span> <span class="toctext">NAVIGATION</span>]] ** [[#3449_Navigation|<span class="tocnumber">10.1</span> <span class="toctext">3449 Navigation</span>]] ** [[#3453_Evasive_Maneuvering|<span class="tocnumber">10.2</span> <span class="toctext">3453 Evasive Maneuvering</span>]] ** [[#3455_Warp_Drive_Operation|<span class="tocnumber">10.3</span> <span class="toctext">3455 Warp Drive Operation</span>]] * [[#SCIENCE|<span class="tocnumber">11</span> <span class="toctext">SCIENCE</span>]] * [[#SPACESHIP_COMMAND|<span class="tocnumber">12</span> <span class="toctext">SPACESHIP COMMAND</span>]] ** [[#3327_Spaceship_Command|<span class="tocnumber">12.1</span> <span class="toctext">3327 Spaceship Command</span>]] ** [[#20342_Advanced_Spaceship_Command|<span class="tocnumber">12.2</span> <span class="toctext">20342 Advanced Spaceship Command</span>]] * [[#SUBSYSTEMS|<span class="tocnumber">13</span> <span class="toctext">SUBSYSTEMS</span>]] |} <br /> = <span id="SKILL_BONUS_MODIFIERS_LIST" class="mw-headline"> SKILL BONUS MODIFIERS LIST </span> = '''427''' total Skills '''subsys=20 + cmd=59 + sci=17 + nav=9 + miss=25 + mech=24 + lead=12 + ind=7 + gun=40 + eng=19 + elec=21 + drone=19''' = '''272''' '''STATUS''': '''11.0%''' COMPLETE - '''30''' of '''272''' skills analyzed = <span id="DRONES" class="mw-headline"> DRONES </span> = = <span id="ELECTRONICS" class="mw-headline"> ELECTRONICS </span> = == <span id="3426_Electronics" class="mw-headline"> 3426 Electronics </span> == {| |+ 3426 Electronics | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3426 | 397 | 424 | 48 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% Bonus to ship CPU output per skill level | |- | | | | | | | |} == <span id="3429_Targeting" class="mw-headline"> 3429 Targeting </span> == {| |+ 3429 Targeting | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3429 | 213 | 311 | 192 | 2002 | 2003 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1506 | 0 | &quot;&quot; | 0 | +1 extra target per skill level, up to the ship's maximum allowed number of targets locked | |- | | | | | | | |} == <span id="3430_Multitasking" class="mw-headline"> 3430 Multitasking </span> == {| |+ 3430 Multitasking | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3426 | 213 | 311 | 192 | 2002 | 2003 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1506 | 0 | &quot;&quot; | 0 | +1 extra target per skill level, up to the ship's maximum allowed number of targets locked | |- | | | | | | | |} == <span id="3432_Electronics_Upgrades" class="mw-headline"> 3432 Electronics Upgrades </span> == {| |+ 3432 Electronics Upgrades | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3432 | 211 | 310 | 50 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;203,210,257,270,272,285,498&quot; | 0 | 5% reduction of CPU needs for all modules requiring Electronics Upgrades per skill level | |- | | | | | | | |} == <span id="3428_Long_Range_Targeting" class="mw-headline"> 3428 Long Range Targeting </span> == {| |+ 3428 Long Range Targeting | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3428 | 206 | 309 | 76 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% Bonus to targeting range per skill level | |- | | | | | | | |} == <span id="3431_Signature_Analysis" class="mw-headline"> 3431 Signature Analysis </span> == {| |+ 3431 Signature Analysis | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3431 | 698 | 566 | 564 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% improved targeting speed per skill level | |- | | | | | | | |} = <span id="ENGINEERING" class="mw-headline"> ENGINEERING </span> = == <span id="3413_Engineering" class="mw-headline"> 3413 Engineering </span> == {| |+ 3413 Engineering | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3413 | 218 | 313 | 11 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% Bonus to ship's powergrid output per skill level | |- | | | | | | | |} == <span id="3417_Energy_Systems_Operation" class="mw-headline"> 3417 Energy Systems Operation </span> == {| |+ 3417 Energy Systems Operation | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3417 | 220 | 314 | 55 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% reduction in capacitor recharge time per skill level | |- | | | | | | | |} == <span id="3418_Energy_Management" class="mw-headline"> 3418 Energy Management </span> == {| |+ 3418 Energy Management | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3418 | 2431 | 1079 | 482 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to capacitor capacity per skill level | |- | | | | | | | |} == <span id="3419_Shield_Management" class="mw-headline"> 3419 Shield Management </span> == {| |+ 3419 Shield Management | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3419 | 280 | 337 | 263 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to shield capacity per skill level | |- | | | | | | | |} == <span id="3424_Energy_Grid_Upgrades" class="mw-headline"> 3424 Energy Grid Upgrades </span> == '''SPECIAL NOTE: This skill's bonus applies ONLY to those modules that are identified as REQUIRING this skill in order to use them''' {| |+ 3424 Energy Grid Upgrades | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3424 | 211 | 310 | 50 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;43,57,61,257,271,766,767,768,769,770&quot; | 0 | 5% reduction in CPU needs of modules requiring Energy Grid Upgrades per skill level | |- | | | | | | | |} <br /> = <span id="GUNNERY" class="mw-headline"> GUNNERY </span> = == <span id="3300_Gunnery" class="mw-headline"> 3300 Gunnery </span> == {| |+ 3300 Gunnery | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3300 | 413 | 441 | 51 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,74&quot; | 0 | 2% Bonus to weapon turrets' rate of fire per skill level | |- | | | | | | | |} == <span id="3310_Rapid_Firing" class="mw-headline"> 3310 Rapid Firing </span> == {| |+ 3310 Rapid Firing | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3310 | 163 | 293 | 51 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,74&quot; | 0 | 4% bonus per skill level to weapon turret rate of fire | |- | | | | | | | |} == <span id="3311_Sharpshooter" class="mw-headline"> 3311 Sharpshooter </span> == {| |+ 3311 Sharpshooter | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3311 | 167 | 294 | 54 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,74&quot; | 0 | 5% bonus to weapon turret optimal range per skill level | |- | | | | | | | |} == <span id="3312_Motion_Prediction" class="mw-headline"> 3312 Motion Prediction </span> == {| |+ 3312 Motion Prediction | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3312 | 2846 | 767 | 160 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,74&quot; | 0 | 5% bonus per skill level to weapon turret tracking speeds | |- | | | | | | | |} == <span id="3315_Surgical_Strike" class="mw-headline"> 3315 Surgical Strike </span> == {| |+ 3315 Surgical Strike | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3315 | 152 | 292 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,74&quot; | 0 | 3% bonus per skill level to the damage of all weapon turrets | |- | | | | | | | |} == <span id="3316_Controlled_Bursts" class="mw-headline"> 3316 Controlled Bursts </span> == {| |+ 3316 Controlled Bursts | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3316 | 225 | 317 | 6 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,74&quot; | 0 | 5% reduction in capacitor need of weapon turrets per skill level | |- | | | | | | | |} == <span id="3317_Trajectory_Analysis" class="mw-headline"> 3317 Trajectory Analysis </span> == {| |+ 3317 Trajectory Analysis | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3317 | 297 | 349 | 158 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,74&quot; | 0 | 5% bonus per skill level to weapon turret accuracy falloff | |- | | | | | | | |} == <span id="3318_Weapon_Upgrades" class="mw-headline"> 3318 Weapon Upgrades </span> == {| |+ 3318 Surgical Strike | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3318 | 211 | 310 | 50 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,72,74,506,507,508,509,510,511,512,524,771,862&quot; | 0 | 5% reduction per skill level in the CPU needs of weapon turrets, launchers and smartbombs | |- | | | | | | | |} == <span id="11207_Advanced_Weapon_Upgrades" class="mw-headline"> 11207 Advanced Weapon Upgrades </span> == {| |+ 11207 Surgical Strike | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 11207 | 246 | 323 | 30 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53,55,72,506,507,508,509,510,511,512,524,771,862&quot; | 0 | Reduces the powergrid needs of weapon turrets and launchers by 2% per skill level | |- | | | | | | | |} == <span id="3304_Medium_Hybrid_Turret" class="mw-headline"> 3304 Medium Hybrid Turret </span> == {| |+ 3304 Medium Hybrid Turret | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3304 | 152 | 292 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;74&quot; | 2 | 5% Bonus to medium hybrid turret damage per level | |- | | | | | | | |} == <span id="3305_Medium_Projectile_Turret" class="mw-headline"> 3305 Medium Projectile Turret </span> == {| |+ 3305 Medium Hybrid Turret | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3305 | 152 | 292 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;55&quot; | 2 | 5% Bonus to medium projectile turret damage per level | |- | | | | | | | |} == <span id="3306_Medium_Energy_Turret" class="mw-headline"> 3306 Medium Energy Turret </span> == {| |+ 3306 Medium Hybrid Turret | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3306 | 152 | 292 | 64 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1503 | 1400 | &quot;53&quot; | 2 | 5% Bonus to medium energy turret damage per level | |- | | | | | | | |} = <span id="INDUSTRY" class="mw-headline"> INDUSTRY </span> = = <span id="LEADERSHIP" class="mw-headline"> LEADERSHIP </span> = = <span id="MISSILE_LAUNCHER_OPERATION" class="mw-headline"> MISSILE LAUNCHER OPERATION </span> = = <span id="MECHANICS" class="mw-headline"> MECHANICS </span> = == <span id="3392_Mechanics" class="mw-headline"> 3392 Mechanics </span> == {| |+ 3392 Mechanics | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3392 | 251 | 327 | 9 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to structure hit points per skill level | |- | | | | | | | |} == <span id="3394_Hull_Upgrades" class="mw-headline"> 3394 Hull Upgrades </span> == {| |+ 3394 Hull Upgrades | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3394 | 270 | 335 | 265 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to armor hit points per skill level | |- | | | | | | | |} = <span id="NAVIGATION" class="mw-headline"> NAVIGATION </span> = == <span id="3449_Navigation" class="mw-headline"> 3449 Navigation </span> == {| |+ 3449 Navigation | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3449 | 222 | 315 | 37 | 2010 | 2011 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% bonus to sub-warp ship velocity per skill level | |- | | | | | | | |} == <span id="3453_Evasive_Maneuvering" class="mw-headline"> 3453 Evasive Maneuvering </span> == {| |+ 3453 Evasive Maneuvering | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3453 | 232 | 151 | 70 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 5% improved ship agility for all ships per skill level | |- | | | | | | | |} == <span id="3455_Warp_Drive_Operation" class="mw-headline"> 3455 Warp Drive Operation </span> == {| |+ 3455 Warp Drive Operation | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3455 | 234 | 319 | 153 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | Each skill level reduces the capacitor need of initiating warp by 10% | |- | | | | | | | |} = <span id="SCIENCE" class="mw-headline"> SCIENCE </span> = = <span id="SPACESHIP_COMMAND" class="mw-headline"> SPACESHIP COMMAND </span> = == <span id="3327_Spaceship_Command" class="mw-headline"> 3327 Spaceship Command </span> == {| |+ 3327 Spaceship Command | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 3327 | 232 | 151 | 70 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;&quot; | 0 | 2% improved ship agility for all ships per skill level | |- | | | | | | | |} == <span id="20342_Advanced_Spaceship_Command" class="mw-headline"> 20342 Advanced Spaceship Command </span> == {| |+ 20342 Advanced Spaceship Command | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 20342 | 232 | 151 | 70 | 2016 | 2017 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 1501 | 1402 | &quot;-15,1615&quot; | 0 | 5% Bonus per skill level to the agility of ships requiring Advanced Spaceship Command | |- | | | | | | | |} = <span id="SUBSYSTEMS" class="mw-headline"> SUBSYSTEMS </span> = </div> 2ebec28d970aa557ed53c1bcb087650a7f12bfd7 Old Wiki:Source Code 0 126 152 2021-04-03T14:30:57Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / [[Category_EVEmu_Development.html|EVEmu Development]] / '''Source Code''' (you are here) |} <br /> == <span id="Community_Repositories" class="mw-headline"> Community Repositories </span> == === <span id="Crucible_.28The_current_development_branch.29" class="mw-headline"> Crucible (The current development branch) </span> === '''Github''' * https://github.com/evemuproject/evemu_server === <span id="Crucible" class="mw-headline"> Crucible </span> === '''Github''' * https://github.com/evemuproject/evemu_crucible === <span id="Incursion" class="mw-headline"> Incursion </span> === '''Github''' * https://github.com/evemuproject/evemu_incursion === <span id="Apocrypha" class="mw-headline"> Apocrypha </span> === '''Github''' * https://github.com/evemuproject/evemu_apocrypha '''SVN''' '''NOTE:''' This is the old svn for the origional evemu apocrypha before moving to github. * [http://trac.evemu.org/ http://trac.evemu.org] === <span id="EVEmu_Control_Panel_V1" class="mw-headline"> EVEmu Control Panel V1 </span> === '''Github''' * https://github.com/evemuproject/evemu_control_panel === <span id="EVEmu_Control_Panel_V2" class="mw-headline"> EVEmu Control Panel V2 </span> === '''Github''' * https://github.com/evemuproject/evemu_control_panel_v2.0 </div> 3c6317fe0229df41f15b1d9b95f0eb6130103b49 Old Wiki:Spawngroupentries 0 127 153 2021-04-03T14:31:07Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="spawnGroupentries" class="mw-headline"> spawnGroupentries </span> == Description of the spawngroups Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' ! '''Default Value''' |- | 'spawnGroupID' | int(10) unsigned | NOT NULL | PRIMARY | 0 |- | 'npcTypeID' | int(10) unsigned | NOT NULL | PRIMARY | 0 |- | 'quantity' | tinyint(3) unsigned | NOT NULL | | 0 |- | 'probability' | float | NOT NULL | | 0 |- | 'ownerID' | int(10) unsigned | NOT NULL | | 0 |- | 'corporationID' | int(10) unsigned | NOT NULL | | 0 |} '''Description of the fields''' <br /> ''''spawnGroupID'''' Unique order ID for this order. Raised incrementally as new orders are made. Links to '''spawngroupentries''' and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. <br /> ''''npcTypeID'''' The npc type found using [http://wiki.evemu.dev/index.php?title=Invtype&action=edit&redlink=1 invtype] table. <br /> ''''quantity'''' How many NPCs will be spawned. <br /> ''''probability'''' The chance the NPC group may appear. 1 being 100% chance. <br /> ''''ownerID'''' The ownerID of the NPC group. This may be the same as corporationID. <br /> ''''corporationID'''' The corporationID of the NPC group. Can be found in [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation]. </div> 9282805e0280aa7f6adca2dd6fa87e9aa3e2b0f0 Old Wiki:Spawngroups 0 128 154 2021-04-03T14:31:17Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="spawngroups" class="mw-headline"> spawngroups </span> == Description of the spawngroups Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' ! '''Default Value''' |- | 'spawnGroupID' | int(10) unsigned | NOT NULL | PRIMARY | AUTO_INCREMENT |- | 'spawnGroupName' | varchar(85) | NOT NULL | | 0 |- | 'formation' | int(10) unsigned | NOT NULL | | 0 |} '''Description of the fields''' <br /> ''''spawnGroupID'''' Unique order ID for this order. Raised incrementally as new orders are made. Links to [[Spawngroupentries.html|spawngroupentries]] and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. <br /> ''''spawnGroupName'''' The name or description for the spawn group. <br /> ''''formation'''' Formation value assigned to the group. <pre> boundsPoint = 0, boundsLine = 1, boundsTriangle = 2, boundsSquare = 3, boundsTetrahedron = 4, //3 sided pyramid boundsPyramid = 5, //4 sided pyramid boundsCube = 6, boundsSphere = 7,</pre> Some of these have been commented out (disabled) in spawnmanager.h </div> cff2c122360857ebadc086c93d1ba9a4125ba4ae Old Wiki:Special Categories 0 129 155 2021-04-03T14:31:27Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="mw-spcontent"> The following categories contain pages or media. [http://wiki.evemu.dev/index.php/Special:UnusedCategories Unused categories] are not shown here. Also see [http://wiki.evemu.dev/index.php/Special:WantedCategories wanted categories]. Categories Display categories starting at:  [http://wiki.evemu.dev/index.php/Category:Apocrypha Apocrypha]‏‎ (2 members) [http://wiki.evemu.dev/index.php/Category:Crucible Crucible]‏‎ (1 member) [http://wiki.evemu.dev/index.php?title=Category:EVE_Server&action=edit&redlink=1 EVE Server]‏‎ (1 member) [http://wiki.evemu.dev/index.php/Category:Formatting_Templates Formatting Templates]‏‎ (2 members) [http://wiki.evemu.dev/index.php/Category:Game_Operation Game Operation]‏‎ (1 member) [http://wiki.evemu.dev/index.php/Category:Incursion Incursion]‏‎ (3 members) [http://wiki.evemu.dev/index.php/Category:Module_Manager Module Manager]‏‎ (1 member) [http://wiki.evemu.dev/index.php?title=Category:Pages_with_broken_file_links&action=edit&redlink=1 Pages with broken file links]‏‎ (1 member) [http://wiki.evemu.dev/index.php/Category:Table_Templates Table Templates]‏‎ (6 members) [http://wiki.evemu.dev/index.php/Category:Templates Templates]‏‎ (2 members) </div> </div> 2b4be1489c30dc99d4cb93023a7ba1a316d544c4 Old Wiki:Special RecentChanges 0 130 156 2021-04-03T14:31:37Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> Track the most recent changes to the wiki on this page. Recent changes options Show last [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&limit=50 '''50'''] | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&limit=100 100] | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&limit=250 250] | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&limit=500 500] changes in last [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&days=1&from= 1] | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&days=3&from= 3] | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&days=7&from= '''7'''] | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&days=14&from= 14] | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&days=30&from= 30] days<br /> [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&hideminor=1 Hide] minor edits | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&hidebots=0 Show] bots | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&hideanons=1 Hide] anonymous users | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&hideliu=1 Hide] logged-in users | [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&hidemyself=1 Hide] my edits<br /> Show new changes starting from [http://wiki.evemu.dev/index.php?title=Special:RecentChanges&from=20150804155637 15:56, 4 August 2015] ----- {| | Namespace: | all (Main) Talk User User talk EVEmu Wiki EVEmu Wiki talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk  Invert selection  Associated namespace |} </div> 502566b2f2b286c2142bcb6a6566f4dc47e49dd5 Old Wiki:Special Search 0 131 157 2021-04-03T14:31:47Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> </div> 07ee23b3e4758d52c534d56fe9fa9cf1b4ac51b5 Old Wiki:Special SpecialPages 0 132 158 2021-04-03T14:31:57Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> == <span id="Maintenance_reports" class="mw-headline">Maintenance reports</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:BrokenRedirects Broken redirects] * [http://wiki.evemu.dev/index.php/Special:DeadendPages Dead-end pages] * [http://wiki.evemu.dev/index.php/Special:DoubleRedirects Double redirects] * [http://wiki.evemu.dev/index.php/Special:LongPages Long pages] * [http://wiki.evemu.dev/index.php/Special:AncientPages Oldest pages] * [http://wiki.evemu.dev/index.php/Special:LonelyPages Orphaned pages] * [http://wiki.evemu.dev/index.php/Special:FewestRevisions Pages with the fewest revisions] * [http://wiki.evemu.dev/index.php/Special:WithoutInterwiki Pages without language links] * [http://wiki.evemu.dev/index.php/Special:ProtectedPages Protected pages] * [http://wiki.evemu.dev/index.php/Special:ProtectedTitles Protected titles] * [http://wiki.evemu.dev/index.php/Special:ShortPages Short pages] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:UncategorizedCategories Uncategorized categories] * [http://wiki.evemu.dev/index.php/Special:UncategorizedFiles Uncategorized files] * [http://wiki.evemu.dev/index.php/Special:UncategorizedPages Uncategorized pages] * [http://wiki.evemu.dev/index.php/Special:UncategorizedTemplates Uncategorized templates] * [http://wiki.evemu.dev/index.php/Special:UnusedCategories Unused categories] * [http://wiki.evemu.dev/index.php/Special:UnusedFiles Unused files] * [http://wiki.evemu.dev/index.php/Special:UnusedTemplates Unused templates] * [http://wiki.evemu.dev/index.php/Special:WantedCategories Wanted categories] * [http://wiki.evemu.dev/index.php/Special:WantedFiles Wanted files] * [http://wiki.evemu.dev/index.php/Special:WantedPages Wanted pages] * [http://wiki.evemu.dev/index.php/Special:WantedTemplates Wanted templates] |width="25%"| |} == <span id="Lists_of_pages" class="mw-headline">Lists of pages</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:AllPages All pages] * [http://wiki.evemu.dev/index.php/Special:PrefixIndex All pages with prefix] * [http://wiki.evemu.dev/index.php/Special:Categories Categories] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:ListRedirects List of redirects] * [http://wiki.evemu.dev/index.php/Special:Disambiguations Pages linking to disambiguation pages] |width="25%"| |} == <span id="Login_.2F_sign_up" class="mw-headline">Login / sign up</span> == {| |width="50%"| * [http://wiki.evemu.dev/index.php/Special:UserLogin Log in] |width="50%"| |} == <span id="Users_and_rights" class="mw-headline">Users and rights</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:ActiveUsers Active users list] * [http://wiki.evemu.dev/index.php/Special:BlockList Blocked users] * [http://wiki.evemu.dev/index.php/Special:ChangeEmail Change e-mail address] * [http://wiki.evemu.dev/index.php/Special:Preferences Preferences] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:PasswordReset Reset password] * [http://wiki.evemu.dev/index.php/Special:Contributions User contributions] * [http://wiki.evemu.dev/index.php/Special:ListGroupRights User group rights] * [http://wiki.evemu.dev/index.php/Special:ListUsers User list] |width="25%"| |} == <span id="Recent_changes_and_logs" class="mw-headline">Recent changes and logs</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:NewFiles Gallery of new files] * [http://wiki.evemu.dev/index.php/Special:Log Logs] * [http://wiki.evemu.dev/index.php/Special:Watchlist My watchlist] * [http://wiki.evemu.dev/index.php/Special:NewPages New pages] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:RecentChanges Recent changes] * [http://wiki.evemu.dev/index.php/Special:RecentChangesLinked Related changes] * [http://wiki.evemu.dev/index.php/Special:Tags Valid change tags] |width="25%"| |} == <span id="Media_reports_and_uploads" class="mw-headline">Media reports and uploads</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:ListFiles File list] * [http://wiki.evemu.dev/index.php/Special:FilePath File path] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:MIMESearch MIME search] * [http://wiki.evemu.dev/index.php/Special:FileDuplicateSearch Search for duplicate files] |width="25%"| |} == <span id="Wiki_data_and_tools" class="mw-headline">Wiki data and tools</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:Gadgets Gadgets] * [http://wiki.evemu.dev/index.php/Special:PopularPages Popular pages] * [http://wiki.evemu.dev/index.php/Special:Statistics Statistics] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:AllMessages System messages] * [http://wiki.evemu.dev/index.php/Special:Version Version] |width="25%"| |} == <span id="Redirecting_special_pages" class="mw-headline">Redirecting special pages</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:LinkSearch External links search] * [http://wiki.evemu.dev/index.php/Special:Random Random page] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:RandomRedirect Random redirect] * [http://wiki.evemu.dev/index.php/Special:Search Search] |width="25%"| |} == <span id="High_use_pages" class="mw-headline">High use pages</span> == {| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:MostLinkedCategories Most linked-to categories] * [http://wiki.evemu.dev/index.php/Special:MostLinkedFiles Most linked-to files] * [http://wiki.evemu.dev/index.php/Special:MostLinkedPages Most linked-to pages] |width="25%"| |width="25%"| * [http://wiki.evemu.dev/index.php/Special:MostLinkedTemplates Most linked-to templates] * [http://wiki.evemu.dev/index.php/Special:MostCategories Pages with the most categories] * [http://wiki.evemu.dev/index.php/Special:MostRevisions Pages with the most revisions] |width="25%"| |} == <span id="Page_tools" class="mw-headline">Page tools</span> == {| |width="50%"| * [http://wiki.evemu.dev/index.php/Special:ComparePages Compare pages] * [http://wiki.evemu.dev/index.php/Special:Export Export pages] * [http://wiki.evemu.dev/index.php/Special:WhatLinksHere What links here] |width="50%"| |} == <span id="Other_special_pages" class="mw-headline">Other special pages</span> == {| |width="50%"| * [http://wiki.evemu.dev/index.php/Special:BookSources Book sources] |width="50%"| |} </div> eb3901faeb755d2eb6d09f101a4cdb4ec00b01e2 Old Wiki:Stastations 0 133 159 2021-04-03T14:32:07Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> == <span id="staStations" class="mw-headline"> staStations </span> == Description of the staStations Table in the EVEmu [[Category_EVE_Database.html|database]]. <br /> {| ! '''Field Name''' ! '''Field Type''' ! '''Nullable''' ! '''Key''' |- | 'stationID' | int(11) | NOT NULL | PRIMARY |- | 'security' | smallint(6) | NULL | |- | 'dockingCostPerVolume' | double | NULL | |- | 'maxShipVolumeDockable' | double | NULL | |- | 'officeRentalCost' | int(11) | NULL | |- | 'operationID' | tinyint(3) unsigned | NULL | |- | 'stationTypeID' | int(11) | NULL | |- | 'corporationID' | int(11) | NULL | |- | 'solarSystemID' | int(11) | NULL | |- | 'constellationID' | int(11) | NULL | |- | 'regionID' | int(11) | NULL | |- | 'stationName' | varchar(100) | NULL | |- | 'x' | double | NULL | |- | 'y ' | double | NULL | |- | 'z' | double | NULL | |- | 'reprocessingEfficiency' | double | NULL | |- | 'reprocessingStationsTake' | double | NULL | |- | 'reprocessingHangarFlag' | tinyint(4) | NULL | |} '''Description of the fields''' <br /> ''''stationID'''' The unique number for each station. Many tables refer to this number. <br /> ''''security'''' More information needed. <br /> ''''dockingCostPerVolume'''' Docking fees based on ship volume. <br /> ''''maxShipVolumeDockable'''' In game description of the item/ship/implant/station/etc. As appears in the '''Info''' window. <br /> ''''officeRentalCost'''' Base rental costs for any corporation offices on this station. <br /> ''''operationID'''' More information needed. <br /> ''''stationTypeID'''' Coordinate system for the station and undocking. Also keeps the hangar and docking bay graphics. Refers to the [http://wiki.evemu.dev/index.php?title=Stastationtypes&action=edit&redlink=1 stastationtypes] table. <br /> ''''corporationID'''' The corporation owning the station. Refers to the [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation] table. <br /> ''''solarSystemID'''' Solar system the station is located. Refers to the [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] table. <br /> ''''constellationID'''' Constellation the station is located. Refers to the [http://wiki.evemu.dev/index.php?title=Mapconstellations&action=edit&redlink=1 mapconstellations] table. <br /> ''''regionID'''' Region the station is located. Refers to the [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] table. <br /> ''''stationName'''' The name of the station. <br /> ''''x'''' The x coordinate in the system. <br /> ''''y'''' The y coordinate in the system. <br /> ''''z'''' The z coordinate in the system. <br /> ''''reprocessingEfficiency'''' The efficiency of the reprocessing facilities. A value of 0.5 represents 50% <br /> ''''reprocessingStationsTake'''' The amount of resources a station takes if standings are neutral. <br /> ''''reprocessingHangarFlag'''' More information needed. May refer to flagID in the [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] table (value is Hangar) </div> 3a45aeafe68d982cf5a1cec23f52e5bf916f6309 Old Wiki:Template Clear 0 134 160 2021-04-03T14:32:17Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> <div style="clear:both;"> </div> This template adds <code>&lt;div style=&quot;clear:both;&quot;&gt;&lt;/div&gt;</code>. <span class="tex2jax_ignore">{{Clear}}</span>: Makes content wait until existing content is completed in all columns. Often used to stop text from flowing next to unrelated images. Usage: <pre>{{Clear}} {{Clear|left}} {{Clear|right}}</pre> </div> 728bcace5c93014286c362f643da143c842c08ec Old Wiki:Template DgmEffectsActionsRow 0 135 161 2021-04-03T14:32:27Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="Description" class="mw-headline"> Description </span> = This template is to be used with [[Template_TableHeader.html|Template:TableHeader]] and [[Template_TableFooter.html|Template:TableFooter]] and cannot be used by itself as it only transcludes a few rows of a wiki table but not the beginning nor ending markups of '''<span class="tex2jax_ignore">{|</span>''' and '''<span class="tex2jax_ignore">|}</span>'''. This template in particular is meant to create entries for the '''[[Category_EVE_Database.html#dgmEffectsActions|dgmEffectsActions]]''' table and so it has as many parameters as the table has, so see the reference for the table to know how many parameters to supply this template. = <span id="Usage" class="mw-headline"> Usage </span> = '''Parameters''' <pre>{{{1}}} = caption for the table</pre> <pre>{{TableHeader|table_name}} {{DgmEffectsActionsRow|1|2|3|4|notes field; just dont}} {{DgmEffectsActionsRow|A|B|C|D|make this too long}} {{TableFooter}}</pre> yields: <br /> {| |+ table_name | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | 1 | 2 | 3 | 4 | notes field; just dont |- | | | | | | |- | | | | | | |- | | | | | | |- | * | '''effectID''' | '''effectAppliedInState''' | '''nullifyOnlineEffect''' | '''nullifiedOnlineEffectID''' | |- | | A | B | C | D | make this too long |- | | | | | | |- | | | | | | |} <br /> |- style=&quot;background-color: black;&quot; | || || || || |- style=&quot;background-color: lightgreen;&quot; | style=&quot;background-color: pink;&quot; | * | style=&quot;background-color: pink;&quot; | '''effectID''' | '''effectAppliedInState''' || '''nullifyOnlineEffect''' || '''nullifiedOnlineEffectID''' |- | style=&quot;background-color: pink;&quot; | | align=&quot;center&quot;|{{{1}}} || align=&quot;center&quot;|{{{2}}} || align=&quot;center&quot;|{{{3}}} || align=&quot;center&quot;|{{{4}}} || align=&quot;center&quot;|{{{5}}} |- | || || || || |- style=&quot;background-color: black;&quot; | || || || || </div> 8e18b654536507b201482247330a0018e06011e7 Old Wiki:Template DgmEffectsInfoRow 0 136 162 2021-04-03T14:32:37Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="Description" class="mw-headline"> Description </span> = This template is to be used with [[Template_TableHeader.html|Template:TableHeader]] and [[Template_TableFooter.html|Template:TableFooter]] and cannot be used by itself as it only transcludes a few rows of a wiki table but not the beginning nor ending markups of '''<span class="tex2jax_ignore">{|</span>''' and '''<span class="tex2jax_ignore">|}</span>'''. This template in particular is meant to create entries for the '''[[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]]''' table and so it has as many parameters as the table has, so see the reference for the table to know how many parameters to supply this template. = <span id="Usage" class="mw-headline"> Usage </span> = <pre>{{TableHeader|table_name}} {{DgmEffectsInfoRow|1|2|3|4|5|6|7|8|9|10|11|notes field; just type whatever}} {{DgmEffectsInfoRow|A|B|C|D|E|F|G|H|I|J|K|description you want for each row}} {{TableFooter}}</pre> yields: <br /> {| |+ table_name | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1 | 2 | 3 | 4 | 5 | 6 | 7 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 8 | 9 | 10 | 11 | notes field; just type whatever | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | A | B | C | D | E | F | G |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | H | I | J | K | description you want for each row | | |- | | | | | | | | |} <br /> |- style=&quot;background-color: black;&quot; | || || || || || || || |- style=&quot;background-color: lightblue;&quot; | style=&quot;background-color: orange;&quot; | * | style=&quot;background-color: orange;&quot; | '''effectID''' | '''targetAttributeID''' || '''sourceAttributeID''' || '''calculationTypeID''' || '''reverseCalculationTypeID''' || '''effectAppliedTo''' || '''effectAppliedBehavior''' |- | style=&quot;background-color: orange;&quot; | | align=&quot;center&quot;|{{{1}}} || align=&quot;center&quot;|{{{2}}} || align=&quot;center&quot;|{{{3}}} || align=&quot;center&quot;|{{{4}}} || align=&quot;center&quot;|{{{5}}} || align=&quot;center&quot;|{{{6}}} || align=&quot;center&quot;|{{{7}}} |- style=&quot;background-color: lightblue;&quot; | style=&quot;background-color: orange;&quot; | | '''effectApplicationType''' || '''targetEquipmentType''' || '''targetGroupIDs''' || '''stackingPenaltyApplied''' |- | || align=&quot;center&quot;|{{{8}}} || align=&quot;center&quot;|{{{9}}} || align=&quot;center&quot;|{{{10}}} || align=&quot;center&quot;|{{{11}}} || align=&quot;center&quot;|{{{12}}} |- style=&quot;background-color: black;&quot; | || || || || || || || </div> 27038312ff9b62c2215f1c87d72b0841db11585c Old Wiki:Template DgmShipBonusModifierRow 0 137 163 2021-04-03T14:32:47Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> <br /> = <span id="Description" class="mw-headline"> Description </span> = This template is to be used with [[Template_TableHeader.html|Template:TableHeader]] and [[Template_TableFooter.html|Template:TableFooter]] and cannot be used by itself as it only transcludes a few rows of a wiki table but not the beginning nor ending markups of '''<span class="tex2jax_ignore">{|</span>''' and '''<span class="tex2jax_ignore">|}</span>'''. This template in particular is meant to create entries for the '''[[Category_EVE_Database.html#dgmShipBonusModifiers|dgmShipBonusModifiers]]''' table and so it has as many parameters as the table has, so see the reference for the table to know how many parameters to supply this template. = <span id="Usage" class="mw-headline"> Usage </span> = <pre>{{TableHeader|table_name}} {{DgmShipBonusModifierRow|1|2|3|4|5|6|7|8|9|10|notes field; just type whatever}} {{DgmShipBonusModifierRow|A|B|C|D|E|F|G|H|I|J|description you want for each row}} {{TableFooter}}</pre> yields: <br /> {| |+ table_name | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1 | 2 | 3 | 4 | 5 | 6 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 7 | 8 | 9 | 10 | notes field; just type whatever | |- | | | | | | | |- | | | | | | | |- | * | '''effectID''' | '''attributeSkillID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | A | B | C | D | E | F |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | G | H | I | J | description you want for each row | |- | | | | | | | |} <br /> |- style=&quot;background-color: black;&quot; | || || || || || || |- style=&quot;background-color: lightblue;&quot; | style=&quot;background-color: orange;&quot; | * | style=&quot;background-color: orange;&quot; | '''effectID''' | '''attributeSkillID''' || '''sourceAttributeID''' || '''targetAttributeID''' || '''calculationTypeID''' || '''reverseCalculationTypeID''' |- | style=&quot;background-color: orange;&quot; | | align=&quot;center&quot;|{{{1}}} || align=&quot;center&quot;|{{{2}}} || align=&quot;center&quot;|{{{3}}} || align=&quot;center&quot;|{{{4}}} || align=&quot;center&quot;|{{{5}}} || align=&quot;center&quot;|{{{6}}} |- style=&quot;background-color: lightblue;&quot; | style=&quot;background-color: orange;&quot; | | '''effectAppliedTo''' || '''targetEquipmentType''' || '''targetGroupIDs''' || '''targetChargeSize''' |- | || align=&quot;center&quot;|{{{7}}} || align=&quot;center&quot;|{{{8}}} || align=&quot;center&quot;|{{{9}}} || align=&quot;center&quot;|{{{10}}} || align&quot;center&quot;|{{{11}}} |- style=&quot;background-color: black;&quot; | || || || || || || </div> bc5dca80723aeaa5cf547c11d6e9728d9ed4bd9c Old Wiki:Template DgmSkillBonusModifierRow 0 138 164 2021-04-03T14:32:57Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> <br /> = <span id="Description" class="mw-headline"> Description </span> = This template is to be used with [[Template_TableHeader.html|Template:TableHeader]] and [[Template_TableFooter.html|Template:TableFooter]] and cannot be used by itself as it only transcludes a few rows of a wiki table but not the beginning nor ending markups of '''<span class="tex2jax_ignore">{|</span>''' and '''<span class="tex2jax_ignore">|}</span>'''. This template in particular is meant to create entries for the '''[[Category_EVE_Database.html#dgmSkillBonusModifiers|dgmSkillBonusModifiers]]''' table and so it has as many parameters as the table has, so see the reference for the table to know how many parameters to supply this template. = <span id="Usage" class="mw-headline"> Usage </span> = <pre>{{TableHeader|table_name}} {{DgmSkillBonusModifierRow|1|2|3|4|5|6|7|8|9|10|notes field; just type whatever}} {{DgmSkillBonusModifierRow|A|B|C|D|E|F|G|H|I|J|description you want for each row}} {{TableFooter}}</pre> yields: <br /> {| |+ table_name | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | 1 | 2 | 3 | 4 | 5 | 6 |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | 7 | 8 | 9 | 10 | notes field; just type whatever | |- | | | | | | | |- | | | | | | | |- | * | '''skillID''' | '''effectID''' | '''sourceAttributeID''' | '''targetAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' |- | | A | B | C | D | E | F |- | | '''effectAppliedTo''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''targetChargeSize''' | | |- | | G | H | I | J | description you want for each row | |- | | | | | | | |} <br /> |- style=&quot;background-color: black;&quot; | || || || || || || |- style=&quot;background-color: lightblue;&quot; | style=&quot;background-color: orange;&quot; | * | style=&quot;background-color: orange;&quot; | '''skillID''' | '''effectID''' || '''sourceAttributeID''' || '''targetAttributeID''' || '''calculationTypeID'''|| '''reverseCalculationTypeID''' |- | style=&quot;background-color: orange;&quot; | | align=&quot;center&quot;|{{{1}}} || align=&quot;center&quot;|{{{2}}} || align=&quot;center&quot;|{{{3}}} || align=&quot;center&quot;|{{{4}}} || align=&quot;center&quot;|{{{5}}} || align=&quot;center&quot;|{{{6}}} |- style=&quot;background-color: lightblue;&quot; | style=&quot;background-color: orange;&quot; | | style=&quot;background-color: lightblue;&quot; | '''effectAppliedTo''' || '''targetEquipmentType''' || '''targetGroupIDs''' || '''targetChargeSize''' |- | style=&quot;background-color: white;&quot; | | align=&quot;center&quot;|{{{7}}} || align=&quot;center&quot;|{{{8}}} || align=&quot;center&quot;|{{{9}}} || align=&quot;center&quot;|{{{10}}} || align=&quot;center&quot;|{{{11}}} |- style=&quot;background-color: black;&quot; | || || || || || || </div> 00d9f00f5a6c0cc606b8171be72d186a47d9129a Old Wiki:Template TableFooter 0 139 165 2021-04-03T14:33:07Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="Description" class="mw-headline"> Description </span> = This template is to be used with [[Template_TableHeader.html|Template:TableHeader]] and cannot be used by itself as it only transcludes the ending markup for a wiki table ('''<span class="tex2jax_ignore">|}</span>''') and not the markups for rows nor beginning markups of '''<span class="tex2jax_ignore">|}</span>'''. This template in particular is meant to create the footer of the table. = <span id="Usage" class="mw-headline"> Usage </span> = <pre>{{TableHeader|table_name}} {{DgmEffectsInfoRow|1|2|3|4|5|6|7|8|9|10|11}} {{DgmEffectsInfoRow|A|B|C|D|E|F|G|H|I|J|K}} {{TableFooter}}</pre> yields: <br /> {| |+ table_name | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1 | 2 | 3 | 4 | 5 | 6 | 7 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 8 | 9 | 10 | 11 | {{{12}}} | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | A | B | C | D | E | F | G |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | H | I | J | K | {{{12}}} | | |- | | | | | | | | |} |} </div> 666542961860e1c1196adc038e6a65a95c4bdd93 Old Wiki:Template TableHeader 0 140 166 2021-04-03T14:33:17Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="Description" class="mw-headline"> Description </span> = This template is to be used with [[Template_TableFooter.html|Template:TableFooter]] and other templates in [[Category_Table_Templates.html|Category:Table Templates]] and cannot be used by itself as it only transcludes the beginning markup for a wiki table ('''<span class="tex2jax_ignore">{|</span>''') and not the markups for rows nor ending markups of '''<span class="tex2jax_ignore">|}</span>'''. This template in particular is meant to create the header of the table and allow parameterized caption value for parameter <span class="tex2jax_ignore">{{{1}}}</span>. = <span id="Usage" class="mw-headline"> Usage </span> = '''Parameters''' <pre>{{{1}}} = caption for the table</pre> <pre>{{TableHeader|table_name}} {{DgmEffectsInfoRow|1|2|3|4|5|6|7|8|9|10|11}} {{DgmEffectsInfoRow|A|B|C|D|E|F|G|H|I|J|K}} {{TableFooter}}</pre> yields: <br /> {| |+ table_name | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | 1 | 2 | 3 | 4 | 5 | 6 | 7 |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | 8 | 9 | 10 | 11 | {{{12}}} | | |- | | | | | | | | |- | | | | | | | | |- | * | '''effectID''' | '''targetAttributeID''' | '''sourceAttributeID''' | '''calculationTypeID''' | '''reverseCalculationTypeID''' | '''effectAppliedTo''' | '''effectAppliedBehavior''' |- | | A | B | C | D | E | F | G |- | | '''effectApplicationType''' | '''targetEquipmentType''' | '''targetGroupIDs''' | '''stackingPenaltyApplied''' | | | |- | | H | I | J | K | {{{12}}} | | |- | | | | | | | | |} {{{1}}} </div> 0217f5dceda6c2237804a21423fe7c5d183481f0 Old Wiki:Template - 0 141 167 2021-04-03T14:33:27Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> <br /> Use <span class="tex2jax_ignore">{{-}}</span> after any floating elements and before elements you do not wish to float together with the first set. This uses a line break, which may introduce an ugly extra blank line. If you want to avoid that, use <span class="tex2jax_ignore">{{</span>[[Template_Clear.html|Clear]]<span class="tex2jax_ignore">}}</span> instead. Do not use this template to deliberately add whitespace and blank lines between non-floating elements. <span class="tex2jax_ignore">{{-}}</span> contains the markup: <pre>&lt;br style=&quot;clear:both;&quot; /&gt;</pre> </div> fd11e6eb3936bf0c120bba0329e247408743c331 Old Wiki:User 86.57.144 0 142 168 2021-04-03T14:33:37Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="noarticletext"> There is currently no text in this page. You can [[index.php/Special:Search/86.57.144.126|search for this page title]] in other pages, or <span class="plainlinks">[http://wiki.evemu.dev/index.php?title=Special:Log&page=User:86.57.144.126 search the related logs]</span>. </div> </div> 70621b52becbd3c793f7c2a03c7f2117684a3d3a Old Wiki:User Aknor Jaden 0 143 169 2021-04-03T14:33:47Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> = <span id="Who_Am_I" class="mw-headline"> Who Am I </span> = <div class="floatright"> [[File_AknorJaden.html|[[File:../images/thumb/5/57/AknorJaden.jpg/200px-AknorJaden.jpg|200x200px|AknorJaden.jpg]]]] </div> Hello, this is the personal page of EVEmu contributor Aknor Jaden. I actively and addictively played EvE Online for almost 9 months, then quit due to the cost and seeming obligations from the other people playing in corps and alliances. Now, I just play eve live now and then as a simple grunt. I enjoy PvP in small and medium sized gangs and will join the rare large scale warfare CTAs. I also enjoy various PvE in null sec regions. I joined development of EVEmu and started drinking through the firehose on Sept. 24, 2010.<br /> = <span id="What_I_am_working_on" class="mw-headline"> What I am working on </span> = ONGOING DOCUMENTATION - Continuing to work on documenting pieces, technologies, and facts about the evemu server, the EvE tables, the client, and anything else related to evemu in order to enable newcomers to come up to speed learning all this stuff more quickly and help with development and testing. FEATURE TESTING / BUG REPORTING - I've been using my knowledge of the game to work on all kinds of testing of features involving every aspect of the game including those that involve multiple characters interacting in some way. Bugs, errors, and working features are all documented as I and others find them on this page. ----- ----- [DONE] - SQL File fixup for Almamu's Account Ban Patch forum post forum announcement on sql db mod Modify evemu_static-dump.sql in the /sql directory with the following query: ALTER TABLE `account` ADD COLUMN `banned` tinyint(1) NOT NULL AFTER `online`; [DONE] - SQL File fixup for Aknor's Bookmark Patch [ forum post] Modify evemu_static-dump.sql in the /sql directory with the following query: ALTER TABLE bookmarks MODIFY created BIGINT; [DONE] - Improving EVEmu Debugging Slash Commands: - Add the following line to the end of the SlashService?.cpp SlashService::Handle_SlashCmd() function but just before the return sLog.Debug( &quot;SlashService::Handle_SlashCmd()&quot;, &quot;Slash command called: '%s'&quot;, arg.arg.c_str() ); Selected Item Window - We want to make this work somehow because currently when an object is clicked in the overview, the icon for the object appears in the Selected Item Window, however, none of the shortcut buttons do and the window continues to state NO ITEMS SELECTED and the client issues an exception as noted in the forum post. [WAITING] - Try substituting DBResultToCRowset for the DBResultToRowset in the return of the ConfigDB.cpp ConfigDB::GetMapObjects?() function. Target Manager [WAITING] - Time To Lock Target function needs Attribute Rewrite merge in order to get actual ship's Scan Resolution attribute and target ship's Signature Radius attribute [WAITING] - Maximum Locked Target check in AddTarget?() function needs Attribute Rewrite merge in order to check the maximum allowed locked targets attribute of the ship. Targeting skill(s) and any targeting modules need to be checked to modify this value. [WAITING] - Maximum Targeting Range check in AddTarget?() function needs Attribute Rewrite merge in order to check the maximum targeting range attribute of the ship. Targeting skill(s) and any targeting modules need to be checked to modify this value. Ship Service / Beyonce Manager / Destiny Manager [IN PROGRESS] - ShipService?.cpp: ShipBound::Handle_Jettison() - I want to finally enable and properly handle the jettison action for ships to dump cargo into space be they cargo containers themselves or items that get placed into a new temporary cargo container. 1) DONE - Modify function code to properly handle two types of items being jettisoned: secure/audit cargo containers and non-cargo container items. Handle one-time temporary cargo container creation upon encountering the first non-cargo container item in the call args list of items being jettisoned. 2) DONE - Properly handle the creation of the temporary cargo container. Consider code in these two places /eve-server/admin/GMCommands.cpp: Command_spawn() and /eve-server/mining/MiningCommands.cpp: SpawnAsteroid?() where the SystemManager? is accessed to either call SystemManager::AddNPC() (in Command_spawn) or SystemManager::AddEntity?() (in SpawnAsteroid?) 3) DONE: Successfully spawned a cargo container in space - Properly spawn the temporary cargo container, if one was created, in the Destiny system so that it shows up in space 4) DONE: Items verified in database to have proper locationID == container's itemID - Properly place any non-cargo container items into the newly spawned temporary cargo container moving them from the ship's cargo. Verify items' new locationID in 'entity' table is now the itemID of the cargo container 5) Need to ensure that items in the following categories are NOT allowed to be jettisoned: Structure (23) 6) Ensure that &quot;jettisoning&quot; secure or audit log containers from cargo has the same effect as &quot;launch for self&quot; in that the container is moved from ship's cargo and placed into space with a new DynamicSystemEntity? object to track it in space and which references the container's InventoryItem? object that tracks the contents. a) Need to implement /inventory/InvBrokerService.cpp: InvBrokerBound::Handle_AssembleCargoContainer call in order to be able to jettison a usable cargo container. [IN QUEUE] - /inventory/InvBrokerService.cpp: InvBrokerBound::Handle_GetInventoryFromId - I want to be able to open up the temporary cargo containers made when jettisoning items into space to view the contents and remove and add items 1) Be able to open a cargo window of a cargo container in space to view its contents 2) Be able to add items to the cargo container once its cargo window is open. Verify these newly added items' new locationID in the 'entity' table is now the itemID of the cargo container 3) Be able to remove items from the cargo container to another location (for now, just test another cargo container and ship's cargo). Verify these newly removed items' new locationID in the 'entity' table is now the itemID of the destination location [WORKING] - SystemManager?.cpp: SystemManager::BootSystem?() - Properly query the entity table in the database using the system's locationID to get a list of all dynamic objects in space that need to be loaded on system boot 1) SystemManager::_LoadSystemDynamics(): a) DONE - Ensure that the SystemDB::LoadSystemDynamicEntities?() call is correctly querying the entity table to get the full list of items/ships/cargo containers/etc for the system in question and populating the returned std::vector list b) Fully implement SystemManager?.cpp: DynamicEntityFactory::BuildEntity?() to handle these entity categories: 1. DONE Asteroids 2. DONE Ships, but only those with ownerID == 1, i.e. no pilots inside, meaning they were ejected from and left in space a. DONE Use Client::Killed() function as inspiration on how to spawn ships in space b. It seems that only the Client and NPC classes are children of the DynamicSystemEntity? abstract class, so it seems that we need more objects that are children of either this class or some other child of SystemEntity?, such as one of those abstract children in SystemEntities?.h for things like the following space objects: (1) DONE Asteroids (2) DONE Ships in space (a) needs its own module manager so fitted modules stay in place (b) should contain a ShipRef? member variable that points to a Ship object created with item_factory (ShipRef? ship = item_factory.Load&lt;Ship&gt;( shipID )) (3) DONE Drones (4) DONE Cargo containers (jet cans and non-expiring secure/audit log) (5) DONE Deployables (Warp Distruptor bubbles) (6) DONE Structures (POS stuff) (7) Wrecks (inanimate) (also need cargo for dropped modules after ship died) (8) Cosmic Anomalies and Signatures (9) Complexes (all the stations, walls, etc) (10) Acceleration gates 3. DONE Celestials, but only cargo containers of all types 4. DONE Drones 5. DONE Deployables, all warp disruptor bubbles 6. DONE Structures, all POS towers, modules, and equipment c) DONE Check code inside the for() loop that uses DynamicEntityFactory::BuildEntity?() to make the SystemEntity? object for each item and the code that spawns the object in space via the BubbleManager::Add() call. Perhaps this code needs to be more like what was used to fix the ShipBound::Handle_Jettison() call which was code from the GMCommands.cpp spawn() call d) DONE Verify objects are being correctly spawned in space [IN QUEUE] - ShipService?.cpp: ShipBound::Handle_Drop() - I want to fix this so that pilots can successfully Launch for Self and Launch for Corp things like secure/audit containers, warp disruptor bubbles, Drones, and POS equipment. This does not mean that the Anchoring and Onlining of the latter things mentioned will be fixed here, just the successful launch of them into space and the correct spawning of these items in space so they can be seen and appear on the Overview in the client. 1) Add comments that this function is supposed to implement the Launch for Self and Launch for Corp functions for containers, warp disruptors, Drones, and POS equipment 2) COMPLETED: New Call_Drop3 packet created and decoding performed inside the function - Research the packet received by the Handle_Drop() call and modify the xmlp definition or make a new one. 3) Properly decode and extract all items to be &quot;dropped&quot; or &quot;launched&quot; into space. 4) Implement and Check a new Launch Timer to determine if it has expired and thus allows the pilot to launch something else. 4) Loop through all items to be &quot;dropped&quot; and execute the correct code that spawns them in space with calls the SystemManager? and DestinyManager?, then remove them from the ship's cargo. 5) Determine packet structure of the return packet sent back to the client once everything that can be launched is launched and what cannot be launched failed to launch. [WAITING] - Spawning Asteroids Asteroid spawning was fixed in SystemManager?.cpp: DynamicEntityFactory::BuildEntity?() by simply setting the InventoryItemRef?-&gt;radius value to something non-zero, such as the value 600, which is the same value hard-coded for all asteroids in the MiningCommands?.cpp: Command_spawnbelt() function. Setting this radius value to 600 now allows asteroids to load and appear in space. Improvements are needed: 1) Attributes for radius (162), mass, volume, capacity, or whatever &quot;stores&quot; the amount of ore that can be extracted from each asteroid, these all need to be stored in 'entity_attributes' table when the asteroids are spawned, then they need to be loaded from that table when the solar systems boot. [WAITING] - BeyonceService?.cpp: BeyonceBound::WarpToStuff?() - Sounds like that when a warp to 0m is targeting a station, it should be 1km off the station's coordinates 1) I need to verify that a warp to 0m on EVE live drops the ship at 1km off a station 2) Implement any changes needed [IN QUEUE] - BeyonceService?.cpp: BeyonceBound::Handle_WarpToStuff() - I want to fix the problem of warping too close to the graphics perimeter of stars, moons, and planets. I think the distance value calculated in this function needs to have 100km subtracted from it so as to drop the ship out of warp that much farther away from any of these objects. [WAITING] - BeyonceService?.cpp: BeyonceBound::Handle_Dock() - I want to fix the enforcement of denying docking permission if the client's ship is outside the docking perimeter 1) CONFIRMED: Docking Perimeter = 500m - I need to re-verify that the station docking perimeter is 500m or something different, so get on a trial EVE account and verify. 2) PACKETS CAPTURED: Pending Decoding - Use Logserver to capture packets during docking procedures for both inside and outside the perimeter to determine what packets need to be sent by the server in these cases 3) Implement any packets that don't yet exist and use them in the BeyonceBound::Handle_Dock() procedure, then implement the docking perimeter check for the correct value [WAITING] - ShipService?.cpp: ShipBound::Handle_Undock() - I want to fix the things in this function so that it is complete and working properly 1) PACKETS CAPTURED: Pending Decoding - Use Logserver to capture packets during undocking procedures to determine what packets need to be sent by the server 2) Implement any packets that don't yet exist and use them in the ShipBound::Handle_Undock() procedure 3) Figure out how to calculate a GVector for the direction of travel 180 degrees from the undock point of the current station, then set the ship traveling along that vector at 100% full speed 4) UPDATE: No error is reported in Logserver on Undock that leads to automatic ship stopping, so I have no idea how to stop this - Do whatever needs to be done to PREVENT the automatic STOP Ship call that the Client is now calling on the server Attribute Rewrite Merge into Experimental Branch [WAITING] - I need someone to commit a bunch of patches to the Experimental branch before I attempt the merge. Module Manager [WAITING] - I need to finish the Attribute Rewrite merge into Experimental branch before I start looking at this. ----- (Date TBD) - Private chats between characters: Most of this doesn't work at all, so hopefully it'll be small enough that I can take a crack at it. First steps are to try the various features of chatting and capture evemu server log data when it fails. RESEARCH TO BE DONE: Use EvE live to capture logserver logs for these items: Joining a password-protected chat channel: capture packet sent by server to query password, capture packet sent to server with password Find out what the channelMods and channelTypes tables are used for WHAT NEEDS DONE: Create a LSCDB class function that queries the database to verify that the character wanting to make changes via Configure is allowed to do so, i.e. they are either the owner or an operator There also needs to be a service call for Access Control that does something for, ahem, Access Control for chat channels ON HOLD: [WAITING] - Figure out how to create a packet sent by server to a character invited to either a private convo chat or a user-created chat. I need help learning how to format and send a packet to a specific client or set of clients. WHAT IS DONE: [2010-11-28] - Fixed Character and Corporation auto-linking in chat windows: LSCDB::LookupOwners?() needed a major rework of the mySQL query. this works now [2010-11-25] - Save the new settings from a Configure call on a chat channel to the channels table entry for this channel [2010-11-19] - Created a service call for Configure that allows a channel owner to make changes to a channel's settings. Implementation is not 100% as I do not know how to force password query on a character wanting to join a password protected chat channel. [2010-11-15] - Created channels are now saved to the database in both the channels table and the channelChars table [2010-11-12] - Fixed creation and joining of Rookie and Help channels so that chat titles are correct and these channels are not automatically joined after the character is more than 30 days old [2010-10-25] - User-created chat channels are properly loaded from the database if they are already in the channels table and the channelchars table [2010-11-06] - Chats now properly broadcast in user-created chat channels. Got this for free with above fix: Make chats in user-created chat channels go through and be broadcast to all other characters in that channel [2010-11-08] - nextFreeChannelID needs to be updated as channels are loaded from when the first character logs in so that when users create a new channel, it uses a bona fide unused ID. The problem is that when channels are created, then destroyed, the list of IDs starting at the first value starts to become fragmented, like a hard drive would when files are created, created, created, then destroyed randomly. The trick is to, when a new channel is created, we need a procedure that starts searching linearly from the first value allowed for a new channel when there are none until it finds a value that isn't used. Perhaps the quickest way would be to query the channels table in the Database just for the channelID field, sorted, of course, and then search until there is a gap. THE WHOLE ENCHILADA OF WHAT NEEDS DONE: - This is the structure of everything that needs to happen to create channels when they aren't active yet, join channels that are active, and save subscribed channels by character ID: Server starts up, no chat channels exist until the first character logs in A Character Logs in: [DONE] Local chat for current solar system is created (if it has not already been created) and joined for this character [DONE] Likewise for region and constellation, if subscribed [DONE] All private chat channels that this character is subscribed to are queried from the channelchars table and created (if they do not yet exist) and joined for this character While a Character is Logged in: Character wants to join an existing private chat channel: [DONE] Check database for this channel [TBD] Verify password, if any, for this channel before allowing access - I don't know how to send the right packet to the target client to ask for a channel password [DONE] Query list of existing channels in the cache and create it if it doesn't exist yet [DONE] Create channel in cache using info from channels table in database [DONE] Assuming all goes well with password joining and cache creation, then save new subscription for this channel for this character in channelChars table [DONE] Character creates a new private chat channel: [DONE] A new chat channel is created in the server cache [DONE] A new entry in the channels table is created for this channel [DONE] A new entry in the channelChars table is created for this character subscribed to this new channel [DONE] This character is joined to the new chat channel [DONE] Any character's chat text submitted to the server is broadcast to the clients of all other subscribed characters Character configures an existing chat channel [Working] Update the settings for this chat channel in the channels table from the received Configure packet [In-Progress] Save the new settings for this chat channel to the channels table entry for this channel Character Leaves an already subscribed chat channel: [DONE] The entry for this character's subscription to this channel is deleted from the channelChars database and this character is removed from the chat channel in the server cache [TBD] Character creates a new Private Conversation chat channel with another player: [TBD] An invitation is broadcast to the other character's client - I don't know how to send the right packet to the target client (character being invited) to invite to the private channel IF the invitation is accepted, THEN a new chat channel is created in the server and both players are joined to the chat channel IF the invitation is declined, THEN no new chat channel is created and the originator's client is informed of the declined invitation [DONE] Any character's chat text submitted to the server is broadcast to the clients of all other subscribed characters - this comes for free once the two characters are joined to the chat channel that is created by the invitor [TBD] Character invites another character to an already created Private Conversation or private chat channel - I don't know how to send the right packet to the target client (character being invited) to invite to the private channel IF the invitation is accepted, THEN the other character is joined to the existing private conversation or private chat channel IF the invitation is declined, THEN the originator's client is informed of the declined invitation [DONE] Any character's chat text submitted to the server is broadcast to the clients of all other subscribed characters - this comes for free once the two characters are joined to the chat channel that is created by the invitor [ON HOLD] Character joins or creates a Fleet - Creating a Fleet currently is not functional, so this work cannot start. Creating a fleet A new chat channel with name Fleet is created in the server cache (nothing is stored into database) Character is joined to this new channel Joining an existing fleet Search for the channel ID for this fleet and join the character to that channel A Character Logs off: Nothing to be done. (2010-10-22) - DB Editor - Add this code from PaLL3 to fix character faulty skills: PaLL3 select 09:18 PaLL3 count(itemID) as count, 09:18 PaLL3 itemID 09:18 PaLL3 from entity_attributes 09:18 PaLL3 where attributeID in (276,280) 09:18 PaLL3 group by itemID 09:18 PaLL3 having count &lt;2 09:19 PaLL3 thats the query 09:19 AknorJaden ok 09:19 AknorJaden then what? 09:19 PaLL3 delete from entity_attributes where itemID in ($test) 09:19 PaLL3 that deletes what it finds 09:19 AknorJaden ok 09:20 milofaq please who can give my db with market 09:20 PaLL3 $dsn = 'mysql:dbname=DBNAME;host=localhost'; 09:20 PaLL3 $dbUser = 'DBUSER'; 09:20 PaLL3 $dbPassword = 'DBPASS'; 09:20 PaLL3 $dbh = new PDO($dsn, $dbUser, $dbPassword); 09:20 PaLL3 $res = $dbh-&gt;prepare 09:20 PaLL3 ('select 09:20 PaLL3 count(itemID) as count, 09:20 PaLL3 itemID 09:20 PaLL3 from entity_attributes 09:20 PaLL3 where attributeID in (276,280) 09:20 PaLL3 group by itemID 09:20 PaLL3 having count &lt;2 '); 09:20 PaLL3 $res-&gt;execute(); 09:20 PaLL3 $result = $res-&gt;fetchAll(PDO::FETCH_COLUMN, 1); 09:20 PaLL3 $test = implode(' ',$result); 09:20 PaLL3 //print_r($test); 09:20 PaLL3 $count = $dbh-&gt;exec(&quot;delete from entity_attributes where itemID in ($test)&quot;); 09:20 PaLL3 if ($count&gt;=1){ 09:20 PaLL3 print(&quot;Deleted $count faulty skills.\n&quot;); 09:20 PaLL3 }else{ 09:20 PaLL3 print(&quot;There were no faulty skills.\n&quot;); 09:20 PaLL3 } 09:21 PaLL3 $dbh = null; 09:21 PaLL3 complete php (2010-10-18) - DONE - DB Editor - Fix Seed Market tab and add controls to provide ability to thin down the mysql query so that the query execution time is drastically reduced when trying to seed a very large group of item types to a large region or regions. (2010-10-05) - DONE: Beast fixed this, too. - Started looking into why pods don't appear when ejecting from ships in space, why those ships don't persist in space after logging out then back in. After ejecting from a ship, no pod appears and the only option is to log out. When logging back in, no toon appears in the character login screen. Here's what I found in the evemu database: in the character_ table, the stationID held the value that the solarSystemID once held, the solarSystemID held the value that the constellationID once held, the constellationID held the value that the regionID once held, and the regionID value held a some other value from some other field, perhaps ancestryID. Looking at these places for causes of the shift in assigned values observed in the character_ table shown above: CharacterDB.cpp line 88, Character.cpp line 879, ShipService?.cpp line 425, Client.cpp line 375, Client.cpp line 411 (2010-09-26) - DONE: Beast fixed this. - Started work on Skills Manager handling adding skills to the queue using the &quot;apply&quot; button in the client. So far, I'm just learning, but what I've seen is this: most skills added to the queue using the &quot;Training Queue&quot; window in the client will, when the &quot;apply&quot; button is pressed, say &quot;COMPLETION IMMINENT&quot; in the queue, and, of course, NEVER complete. This is incorrect. For some reason, the queue does not retain the time to completion for the skill just added, which, for all skills, is NOT ZERO. Anyway, behavior by the client sending messages to the server seems to be a bit different between when the skill is added to the queue from the Character window's skill browser and when the skill is added to the queue from the &quot;Training Queue&quot; window. Specifically, the Character::GetEndOfTraining?() function is called during the later action, which I am wondering might be somehow involved with screwing up the client's impression of what the actual training time remaining really is. I don't know what kind of status returned to the client would cause the client to report &quot;COMPLETION IMMINENT&quot; in the training queue. What I need to learn - besides everything Get familiar with the evemu Bound Object system Get familiar with the evemu memory management system Learn about singletons, template classes, massive amounts of inheritance PyRef? casserts <pre>Makefiles</pre> Other Interesting Tidbits of Information CCP's EVE Online Developer Network <pre>MySQL Cluster Memory Based Database</pre> CCP changed formats of client textures: http://www.eveonline.com/devblog.asp?a=blog&bid=732 Another dude's eve online &quot;mod&quot;: http://www.positech.co.uk/forums/phpBB3/viewtopic.php?f=23&t=5175 OLD EVEmu Information <pre>Slightly newer, but still old EVEmu Forums Original EVEmu Forum/wiki DevLiveArch - discusses nodes and such</pre> OTHER EVE Emulator Projects <pre>EVERLAST - dead project</pre> Links for Learning Things <pre>The C++ Resources Network - tutorials, references, etc Programming Tutorials: C++ Made Easy Learn Basic HTML</pre> Sansha Supercarrier from Incursion in Apocrypha INSERT into the 'eveGraphics' table the following new entry: 10000 | res:/Model/ship/dtb/sanshacarrier/sca1.red | sanshacarrier | sanshacarrier | 1 | 0 INSERT into the 'invTypes' table a new type entry with itemID = 32305 and a graphicID = 10000 INSERT into the 'invShipTypes' table the following new entry: 32305 | NULL | NULL | 3341 LAST STEP: Clear both your Client cache AND your Server cache before restarting server and client </div> 887396854e25e855c7efd3062a748af2ff035d3a Old Wiki:User talk 86.57.144 0 144 170 2021-04-03T14:33:57Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text"> <div class="noarticletext"> There is currently no text in this page. You can [[index.php/Special:Search/86.57.144.126|search for this page title]] in other pages, or <span class="plainlinks">[http://wiki.evemu.dev/index.php?title=Special:Log&page=User_talk:86.57.144.126 search the related logs]</span>. </div> </div> 48563cafd162e61f4486ed320920c75757856b59 Old Wiki:XML Packet Generator 0 145 171 2021-04-03T14:34:07Z Admin 1 Bot: Automated import of articles wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |width="100%"| <div id="toctitle"> == Contents == </div> * [[#Description|<span class="tocnumber">1</span> <span class="toctext">'''Description'''</span>]] * [[#Current_usage|<span class="tocnumber">2</span> <span class="toctext">'''Current usage'''</span>]] * [[#Example_on_a_real_packet|<span class="tocnumber">3</span> <span class="toctext">Example on a real packet</span>]] * [[#XMLP_Format_Demystified|<span class="tocnumber">4</span> <span class="toctext">XMLP Format Demystified</span>]] ** [[#Tags_and_their_uses|<span class="tocnumber">4.1</span> <span class="toctext">Tags and their uses</span>]] |} == <span id="Description" class="mw-headline"> '''Description''' </span> == XML Packet Generator, abbreviated ''xmlpktgen'', is a tool specifically designed to solve one of the problems with Python interaction: its dynamic typing. Using marshaling and unmarshaling, we are able to reproduce any object that a client sends to us; however, there is nothing we can say about these objects at compile time: are these ints? floats? tuples? Thus the objects passed to calls as arguments (for example) must always be examined and their types must be determined in order to be effectively used in C++. We could do this manually; however, it's soon clear that it's nothing but endless code repetition. So we use the xmlpktgen: if we feed it with proper XML destribing the object(s) we wish to decode, it generates .h/.cpp files with classes that do exactly what we need - scan through given object and pull out stuff we need (ints, strings etc.), according to the given XML description. These classes can also handle inverse operation: given the components, they can construct quite complex objects out of them. <br /> == <span id="Current_usage" class="mw-headline"> '''Current usage''' </span> == In the current setup, its headers are in include/xmlpktgen, source is in src/xmlpktgen. After it's built, it's used to generate .h/.cpp files for .xmlp descriptors in src/eve-common/packets. These generated classes are then used throughout the whole eve-common, eve-tool and eve-server source. == <span id="Example_on_a_real_packet" class="mw-headline"> Example on a real packet </span> == The packet is to big to be pasted here so you can access it here: [http://www.levelbelow.net/pastebin/1372/ Packet Example] Let's take this complicated packet as an example on how to create the xmlp code in these situations. First, we look at what we have as a general structure. You start by looking under the [PySubstream] line. There we have a PyString called &quot;CreateCharacterWithDoll&quot; - this is the method that has been called from the client to the server. The client sends information about your character creation results (name, race, gender, bloodline, avatar appearance, picture pose information and schoolID). Under the PyString &quot;CreateCharacterWithDoll&quot; there is a tuple containing 7 items. If you take a close look you can see that the first item it's a string that contains the name of the created character and the rest of the PyInts and PyObjects are the data specified above. The firs thing you want to do is to add a &lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt;, this will define a class named CallCreateCharacterWithDoll that you can later use inside the C++ code. Then you take the first thing under the PySubstream, which is a &lt;tupleInline&gt; and under this you add the elements one by one like this: <span class="tex2jax_ignore"><code> </code></span> <pre>&lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt; &lt;tupleInline&gt; &lt;wstring name = &quot;name&quot; /&gt; &lt;int name = &quot;bloodlineID&quot; /&gt; &lt;int name = &quot;ancestryID&quot; /&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;avatarInfo&quot; /&gt; &lt;/objectInline&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;poseInfo&quot; /&gt; &lt;/objectInline&gt; &lt;int name = &quot;schoolID&quot; /&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; </pre> The name after each type (wstring, int, list) specifies the name of the property that will be generated inside the class CallCreateaCharacterWithDoll, it's like saying &quot;int number&quot; in ordinary C++. First 3 lines were pretty straight forward, a string and 2 ints, but what about the fourth one? Well... here is the tricky part... This is an object which consists of a string and a dict; the string &quot;util.KeyVal&quot; describes the dict format which is: &quot;Key Val&quot; (ex: &quot;gold&quot;:99999) a key, named &quot;gold&quot; for example and it's value 99999 which can be an int, float, list or any object. I've chosen this packet because of it's complexity from which you can learn how to deal with types other than the basic int, float, string. Coming soon: The continuation of the the process on how we go about extracting the data and store it in the Data Base. == <span id="XMLP_Format_Demystified" class="mw-headline"> XMLP Format Demystified </span> == XMLP Structure Using it on the C++ side: <pre>&lt;objectInline&gt; &lt;stringInline value=&quot;util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;int name=&quot;itemID&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;attributes&quot;&gt; &lt;dictInt name=&quot;attributes&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;invItem&quot;&gt; &lt;raw name=&quot;invItem&quot; /&gt; obj.invItem = new PyPackedRow(...) &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;time&quot;&gt; &lt;/dictInlineEntry&gt; &lt;int name=&quot;time&quot; /&gt; &lt;dictInlineEntry key=&quot;activeEffects&quot;&gt; &lt;dictInt name=&quot;activeEffects&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> example for including an entire xmlp structure into another: <pre>&lt;objectInline&gt; &lt;stringInline value=util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> <br /> === <span id="Tags_and_their_uses" class="mw-headline"> Tags and their uses </span> === A full list of xmlp tags can be found in Generator.h/.cpp in the &quot;xmlpktgen&quot; project. Use &lt;&gt; not [] wiki formating is evil. '''[elementDef] [/elementDef]''' the outermost wrapper tag around an entire XMLP structure, close with '''[element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /]''' you supply the actual object (not just a pointer) to the util_Rowset '''[elementPtr type=&quot;OnLSC_SenderInfo&quot; name=&quot;sender&quot; /]''' you supply a pointer to the OnLSC_SenderInfo class object instance '''[raw name=&quot;raw_name&quot; /]''' you put a new PyRep * object here, which can be any PyXXXX class pointer '''[objectEx name=&quot;name&quot; type=&quot;a type&quot; optional=&quot;true/false&quot;] [/objectEx]''' specifies a PyObjectEx object, Type it's like util.KeyVal object type and can be left out, Optional asks if it's type 2 or not '''[objectInline]''' specifies a PyObject object, closed by [/objectInline] '''[substreamInline] marshalling/unmarshalling [/substreamInline]''' specifies a PySubStream object - this is used by lower level '''[none /]''' specifies a PyNone object '''[dictInline] [/dictInline]''' wrap a dictionary in this and its closing tag '''[dictInlineEntry key=&quot;dict_key_string&quot;]''' this defines an expected dictionary key value as a string &quot;dict_key_string&quot;, used inside [dictinline] you then need to specify on the next line a value part of this dictionary key-value pair eg: <pre>&lt;dictInlineEntry key=&quot;key_string&quot;&gt; &lt;int name=&quot;int_name&quot; /&gt; &lt;/dictInlineEntry&gt;</pre> '''[dict name=&quot;dict_name&quot; /]''' defines a whole dictionary object of type PyDict '''[dictInt name=&quot;dict_int_name&quot; /]''' defines a whole dictionary with integers used for ALL key values '''[dictStr name=&quot;dict_string_name&quot; /]''' defines a whole dictionary with strings used for ALL key values '''[dictRaw name=&quot;dict_raw_name&quot; key=&quot;key_Ctype&quot; pykey=&quot;key_Ptype&quot; value=&quot;val_Ctype&quot; pyvalue=&quot;val_Ptype&quot; /]''' defines a whole dictionary with &quot;key_Ctype&quot; of a C/C++ type such as uint32 as keys, with the Python type specified type specified by &quot;key_Ptype&quot;, the value C/C++ type specified by &quot;val_Ctype&quot;, and the Python type specified by &quot;val_Ptype&quot; '''[stringInline value=&quot;string_value&quot; /]''' specifies a constant PyString value that contains the string &quot;string_value&quot; '''[tokenInline]''' specifies a PyToken '''[tupleInline]''' wrap a tuple (list of items) in this and its closing tag &lt;/tupleInline&gt; '''[tuple name=&quot;tuple_name&quot; /]''' specifies a tuple object of type PyTuple '''[listInline]''' wrap a list (list of items) in this and its closing tag &lt;/listInline&gt; ['''list name=&quot;list_name&quot; /]''' specifies a list of objects with the name &quot;list_name&quot; '''[listInt name=&quot;list_int_name&quot; /]''' specifies a list of PyInt objects with the name &quot;list_int_name&quot; '''[listStr name=&quot;list_string_name&quot; /]''' specifies a list of PyString objects with the name &quot;list_string_name&quot;; no explicit '''[string name=&quot;string_name&quot; /]''' simple object type PyString with the name &quot;string_name&quot; '''[wstring name=&quot;wstring_name&quot; /]''' simple object type PyWString with the name &quot;wstring_name&quot; '''[real name=&quot;real_name&quot; /]''' simple object type PyFloat with the name &quot;real_name&quot; '''[int name=&quot;int_name&quot; /]''' simple object type PyInt with the name &quot;int_name&quot; '''[long name=&quot;long_name&quot; /]''' simple object type PyLong with the name &quot;long_name&quot; '''[bool name=&quot;bool_name&quot; /]''' simple object type PyBool with the name &quot;bool_name&quot; </div> f1dd3ec7fae5c52c3afb61f774ceb022c1c87c29 Category:Crucible 14 146 172 2021-04-04T00:06:55Z DarksHeiress 7 Crucible wikitext text/x-wiki ==Crucible== '''The EVEmu project is a developing EVE Online server suite and as yet does not support most features offered in the game.''' '''EVEmu Crucible is compatible with EVE Crucible Client v1.6.5 build 360229.''' = <span id="DISCLAIMER" class="mw-headline"> DISCLAIMER </span> = EVEmu is an educational project. This means, our primary interest is to learn and teach us and our users more about C++ project development on a large scale. Our software is not intended for running public servers, and we do not support that. We are not responsible for what others do with the source code downloaded from this project. For users that are new to building servers and would like some background information on the project please go [[Getting Started|here]]. c39403754a17463086ed62c5b52ce90eb5bb8757 Main Page 0 2 173 117 2021-04-04T00:12:43Z DarksHeiress 7 Removed the crucible link as it isn't needed with the guide wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|IRC]] conversations and [[EVEmu Connect#Teamspeak|Teamspeak]] conversations, then [[Getting Started|get started learning the server codebase]] while you learn C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via IRC, Teamspeak, Forums]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} a7c94a5137e99bab2c2d9253e290f35de28ce53c 175 173 2021-04-04T00:15:40Z DarksHeiress 7 wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|IRC]] conversations and [[EVEmu Connect#Teamspeak|Teamspeak]] conversations, then [[Getting Started|get started learning the server codebase]] while you learn C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 01ebb896c7f037a12fa7c497dd3be6c13cc16378 176 175 2021-04-04T00:18:19Z DarksHeiress 7 Changed wording wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]], and then you can [[Getting Started|get started learning the server codebase]] while also learning C++ from some [[Getting Started#Getting Started|tutorials]] and from our experienced programmers right alongside us. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} ab92f7f22e2708e95daf1efa2e06dbefe9958977 177 176 2021-04-04T00:20:31Z DarksHeiress 7 Minor wording changes wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. We also have a work-in-progress [[:Category:EVEmu Web Portal|Web Portal]] that always needs some experienced hands in PHP/HTML. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 4414dfe78a4e057a135992053321b22c1e1f0196 193 177 2021-04-04T00:55:19Z DarksHeiress 7 wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|IRC or Teamspeak]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} cc66b36f4f5409d187b1f23f5c628c7b169f55f3 196 193 2021-04-04T01:00:59Z DarksHeiress 7 wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} a4659e10a7ec000b3946a9e6ddafd1a733a297f5 EVEmu Connect 0 12 174 23 2021-04-04T00:15:05Z DarksHeiress 7 Removed IRC and TS3 and added Discord wikitext text/x-wiki ==Discord== Previously any conversations related to EVEmu were hosted on IRC, Teamspeak, and forums. These have been moved to a discord server found [https://discord.gg/rHf4ssmNa7 here.] 8f4466f4f1f855ff93168a3625ecb592e545e50f Category:EVEmu API Server 14 147 178 2021-04-04T00:24:24Z DarksHeiress 7 Updated with information from old wiki wikitext text/x-wiki == Contents == </div> * [[#Introduction|<span class="tocnumber">1</span> <span class="toctext">Introduction</span>]] * [[#Player_Tools|<span class="tocnumber">2</span> <span class="toctext">Player Tools</span>]] * [[#API_Service_Handlers|<span class="tocnumber">3</span> <span class="toctext">API Service Handlers</span>]] * [[#Creating_API_Account_and_using_it_in_Out_Of_Game_Player_Tools|<span class="tocnumber">4</span> <span class="toctext">Creating API Account and using it in Out Of Game Player Tools</span>]] ** [[#API_Service_Manager|<span class="tocnumber">4.1</span> <span class="toctext">API Service Manager</span>]] ** [[#API_Account_Manager|<span class="tocnumber">4.2</span> <span class="toctext">API Account Manager</span>]] *** [[#API_Key_Request|<span class="tocnumber">4.2.1</span> <span class="toctext">API Key Request</span>]] *** [[#Characters|<span class="tocnumber">4.2.2</span> <span class="toctext">Characters</span>]] *** [[#Account_Status|<span class="tocnumber">4.2.3</span> <span class="toctext">Account Status</span>]] ** [[#API_Admin_Manager|<span class="tocnumber">4.3</span> <span class="toctext">API Admin Manager</span>]] ** [[#API_Character_Manager|<span class="tocnumber">4.4</span> <span class="toctext">API Character Manager</span>]] *** [[#Character_Sheet|<span class="tocnumber">4.4.1</span> <span class="toctext">Character Sheet</span>]] *** [[#Skill_Queue|<span class="tocnumber">4.4.2</span> <span class="toctext">Skill Queue</span>]] *** [[#Skill_In_Training|<span class="tocnumber">4.4.3</span> <span class="toctext">Skill In Training</span>]] ** [[#API_Corporation_Manager|<span class="tocnumber">4.5</span> <span class="toctext">API Corporation Manager</span>]] ** [[#API_EVE_System_Manager|<span class="tocnumber">4.6</span> <span class="toctext">API EVE System Manager</span>]] ** [[#API_Map_Manager|<span class="tocnumber">4.7</span> <span class="toctext">API Map Manager</span>]] ** [[#API_Server_Manager|<span class="tocnumber">4.8</span> <span class="toctext">API Server Manager</span>]] *** [[#Server_Status|<span class="tocnumber">4.8.1</span> <span class="toctext">Server Status</span>]] = <span id="Introduction" class="mw-headline"> Introduction </span> = TBD <br /> = <span id="Player_Tools" class="mw-headline"> Player Tools </span> = EFT and EVEmon have been adapted to successfully connect and communicate with the EVEmu server. Specially adapted copies of these tools can be found in the utils/playertools/ directory under the project root. There is an '''eft''' folder and an '''evemon''' folder that contain the respective tools, modified for use with EVEmu's server port 64 for the API Server. <br /> = <span id="API_Service_Handlers" class="mw-headline"> API Service Handlers </span> = TBD * Admin Service * Account Service * Character Service * Market Service * Corp Service *  ? <br /> = <span id="Creating_API_Account_and_using_it_in_Out_Of_Game_Player_Tools" class="mw-headline"> Creating API Account and using it in Out Of Game Player Tools </span> = The normal way for players to manage their accounts' API server keys is via the [http://wiki.evemu.dev/index.php?title=EVEmu_Web_Portal&action=edit&redlink=1 EVEmu Web Portal]. See that page for details on how to use the web portal to create and manage API server keys. This section details the URL formats for creating and managing API server keys without the use of the web portal. Resources: * [http://wiki.eve-id.net/APIv2_Page_Index APIv2 Reference] - shows all possible things queryable and whether Limited/Full applies The most generic form of any HTTP GET URL used to communicate with EVEmu's API Server takes the form shown here: <pre>http://&lt;server_address&gt;:&lt;port&gt;/&lt;service&gt;/&lt;service_handler&gt;?&lt;param1&gt;=&lt;value1&gt;&amp;&lt;param2&gt;=&lt;value2&gt;&amp;&lt;param3&gt;=&lt;value3&gt;</pre> The number of &lt;param&gt;=&lt;value&gt; pairs is unlimited and must always be preceded by the &amp; character and the last pair must not end with the &amp; character. The following Services exist in the EVEmu API Server: {| !width="50%"| '''Service''' !width="50%"| '''Available Service Handlers''' |- | [[#API_Service_Manager|base]] | none |- | [[#API_Account_Manager|account]] | APIKeyRequest.xml.aspx<br /> Characters.xml.aspx<br /> AccountStatus.xml.aspx |- | [[#API_Admin_Manager|admin]] | none |- | [[#API_Character_Manager|char]] | CharacterSheet.xml.aspx<br /> SkillQueue.xml.aspx<br /> SkillInTraining.xml.aspx |- | [[#API_Corporation_Manager|corp]] | none |- | [[#API_EVE_System_Manager|eve]] | none |- | [[#API_Map_Manager|map]] | none |- | [[#API_Server_Manager|server]] | ServerStatus.xml.aspx |} <br /> == <span id="API_Service_Manager" class="mw-headline"> API Service Manager </span> == <br /> == <span id="API_Account_Manager" class="mw-headline"> API Account Manager </span> == === <span id="API_Key_Request" class="mw-headline"> API Key Request </span> === <pre>http://&lt;server_address&gt;:&lt;port&gt;/account/APIKeyRequest.xml.aspx?username=&lt;username&gt;&amp;password=&lt;password&gt;&amp;keytype=&lt;full|limited&gt;&amp;action=&lt;new|get&gt;</pre> === <span id="Characters" class="mw-headline"> Characters </span> === === <span id="Account_Status" class="mw-headline"> Account Status </span> === <br /> == <span id="API_Admin_Manager" class="mw-headline"> API Admin Manager </span> == <br /> == <span id="API_Character_Manager" class="mw-headline"> API Character Manager </span> == === <span id="Character_Sheet" class="mw-headline"> Character Sheet </span> === === <span id="Skill_Queue" class="mw-headline"> Skill Queue </span> === === <span id="Skill_In_Training" class="mw-headline"> Skill In Training </span> === <br /> == <span id="API_Corporation_Manager" class="mw-headline"> API Corporation Manager </span> == <br /> == <span id="API_EVE_System_Manager" class="mw-headline"> API EVE System Manager </span> == <br /> == <span id="API_Map_Manager" class="mw-headline"> API Map Manager </span> == <br /> == <span id="API_Server_Manager" class="mw-headline"> API Server Manager </span> == === <span id="Server_Status" class="mw-headline"> Server Status </span> === 391f93174d04d19ccb3950096abdb29169460453 180 178 2021-04-04T00:27:11Z DarksHeiress 7 wikitext text/x-wiki = <span id="Introduction" class="mw-headline"> Introduction </span> = TBD <br /> = <span id="Player_Tools" class="mw-headline"> Player Tools </span> = EFT and EVEmon have been adapted to successfully connect and communicate with the EVEmu server. Specially adapted copies of these tools can be found in the utils/playertools/ directory under the project root. There is an '''eft''' folder and an '''evemon''' folder that contain the respective tools, modified for use with EVEmu's server port 64 for the API Server. <br /> = <span id="API_Service_Handlers" class="mw-headline"> API Service Handlers </span> = TBD * Admin Service * Account Service * Character Service * Market Service * Corp Service *  ? <br /> = <span id="Creating_API_Account_and_using_it_in_Out_Of_Game_Player_Tools" class="mw-headline"> Creating API Account and using it in Out Of Game Player Tools </span> = The normal way for players to manage their accounts' API server keys is via the [http://wiki.evemu.dev/index.php?title=EVEmu_Web_Portal&action=edit&redlink=1 EVEmu Web Portal]. See that page for details on how to use the web portal to create and manage API server keys. This section details the URL formats for creating and managing API server keys without the use of the web portal. Resources: * [http://wiki.eve-id.net/APIv2_Page_Index APIv2 Reference] - shows all possible things queryable and whether Limited/Full applies The most generic form of any HTTP GET URL used to communicate with EVEmu's API Server takes the form shown here: <pre>http://&lt;server_address&gt;:&lt;port&gt;/&lt;service&gt;/&lt;service_handler&gt;?&lt;param1&gt;=&lt;value1&gt;&amp;&lt;param2&gt;=&lt;value2&gt;&amp;&lt;param3&gt;=&lt;value3&gt;</pre> The number of &lt;param&gt;=&lt;value&gt; pairs is unlimited and must always be preceded by the &amp; character and the last pair must not end with the &amp; character. The following Services exist in the EVEmu API Server: {| !width="50%"| '''Service''' !width="50%"| '''Available Service Handlers''' |- | [[#API_Service_Manager|base]] | none |- | [[#API_Account_Manager|account]] | APIKeyRequest.xml.aspx<br /> Characters.xml.aspx<br /> AccountStatus.xml.aspx |- | [[#API_Admin_Manager|admin]] | none |- | [[#API_Character_Manager|char]] | CharacterSheet.xml.aspx<br /> SkillQueue.xml.aspx<br /> SkillInTraining.xml.aspx |- | [[#API_Corporation_Manager|corp]] | none |- | [[#API_EVE_System_Manager|eve]] | none |- | [[#API_Map_Manager|map]] | none |- | [[#API_Server_Manager|server]] | ServerStatus.xml.aspx |} <br /> == <span id="API_Service_Manager" class="mw-headline"> API Service Manager </span> == <br /> == <span id="API_Account_Manager" class="mw-headline"> API Account Manager </span> == === <span id="API_Key_Request" class="mw-headline"> API Key Request </span> === <pre>http://&lt;server_address&gt;:&lt;port&gt;/account/APIKeyRequest.xml.aspx?username=&lt;username&gt;&amp;password=&lt;password&gt;&amp;keytype=&lt;full|limited&gt;&amp;action=&lt;new|get&gt;</pre> === <span id="Characters" class="mw-headline"> Characters </span> === === <span id="Account_Status" class="mw-headline"> Account Status </span> === <br /> == <span id="API_Admin_Manager" class="mw-headline"> API Admin Manager </span> == <br /> == <span id="API_Character_Manager" class="mw-headline"> API Character Manager </span> == === <span id="Character_Sheet" class="mw-headline"> Character Sheet </span> === === <span id="Skill_Queue" class="mw-headline"> Skill Queue </span> === === <span id="Skill_In_Training" class="mw-headline"> Skill In Training </span> === <br /> == <span id="API_Corporation_Manager" class="mw-headline"> API Corporation Manager </span> == <br /> == <span id="API_EVE_System_Manager" class="mw-headline"> API EVE System Manager </span> == <br /> == <span id="API_Map_Manager" class="mw-headline"> API Map Manager </span> == <br /> == <span id="API_Server_Manager" class="mw-headline"> API Server Manager </span> == === <span id="Server_Status" class="mw-headline"> Server Status </span> === 71f9c21f88d7903c3dab778c9b12bf5dbd1661ca Category:EVE Database 14 148 179 2021-04-04T00:26:29Z DarksHeiress 7 Created page with "= <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> = EVE needs a database running behind the scenes on the server to maintain and use all information..." wikitext text/x-wiki = <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> = EVE needs a database running behind the scenes on the server to maintain and use all information needed for gameplay. CCP uses MSSQL to run their database but it is not free so EVEmu uses MySQL. Fortunately for us, many out of game tools use MySQL too so there are publicly available MySQL conversions of the CCP Static Data Dump that is released in MSSQL format. We primarily get these MySQL conversions from the [http://wiki.eve-id.net/CCP_Toolkit_Release_History EVE Developer Network - Static Data Dump History page]. Instructions on how to build the database can be found on our [[Build_Database.html|Build_Database]] page. = <span id="EVEmu_Database_Tools" class="mw-headline"> EVEmu Database Tools </span> = The EVEmu Database is quite extensive and difficult to navigate or work with, so the EVEmu team has developed some tools to use that make this job easier. There was a [[EVEmu_Control_Panel.html|EVEmu_Control_Panel]] created to help make seeding the market, editing/deleting/adding in-game item types, creating/editing/deleting characters and accounts, etc adding asteroid fields and other features more convenient for developers wishing to populate their universe. = <span id="EVEmu_Database_Layout" class="mw-headline"> EVEmu Database Layout </span> = <div class="floatright"> [[File_Dbo_001.html|[[File:../images/thumb/7/72/Dbo_001.png/360px-Dbo_001.png|360x292px|Dbo 001.png]]]] </div> The Eve Online Database is extremely large and complex. The following is a visual representation of the public data CCP has released. This is based from an older version of the database and no longer applies to modern iterations. The EVEmu Database has more tables and more relationships than displayed here. Download the relationships here: [[File_Dbo_002.html|File:Dbo 002.pdf]] <br /> == <span id="Ideas_for_the_Future" class="mw-headline"> Ideas for the Future </span> == * It would speed up DB queries quite a bit if we split the '''entity''' and '''entity_attributes''' tables into multiple pairs for each major object type in the game. For example, we could have a pair of these tables that only holds ships and drones called '''entity_ships''' and '''entity_ships_attributes'''. Another pair could exist for just POS structures called '''entity_structures''' and '''entity_structures_attributes'''. Here is a comprehensive, although probably incomplete, list of the different groups requiring their own pair of these two tables: ** Characters and Clones ** Ships and Drones ** Modules and Charges ** Asteroids ** Celestial objects ** Structures ** Deployables ** Cargo Containers ** Stations (player and NPC) ** Corp items === <span id="Possible_Structure_layout" class="mw-headline"> Possible Structure layout </span> === '''entity_ships''' '''entity_ship_attributes''' * Ships 6 * Drones 18 <br /> '''entity_items''' '''entity_items_attributes''' * material 4 * blueprint 9 * ancient relics 34 * reaction 24 * commodity 17 <br /> '''entity_modules''' '''entity_modules_attributes''' * module 7 * charges 8 * subsystem 32 * decrypters 35 <br /> '''entity_structure''' '''entity_structure_attributes''' * structure 23 * deployable 22 * station 3 The addition of a table for redeemable items. Items that are 'gifted' to players that may be allocated to a character prior to character selection (but may also be done in game) Fields may include (but not limited to) AccountID, typeID, Quantity, Timegiven, TimeStop AccountID - The account with the item(s) in question typeID - the typeID of the item Quantity - The quantity avaliable Timegiven - The time the item(s) were given to the player TimeElapse- The time the item(s) will be removed from redemption. <br /> '''TODO: Describe each table that is added by EVEmu, its fields and what it's used for''' * accountApi * dgmEffectsInfo * dgmEffectsActions * dgmShipBonusModifiers * dgmSkillBonusModifiers * dgmImplantBonusModifiers <br /> = <span id="EVEmu_Database_Tables" class="mw-headline"> EVEmu Database Tables </span> = This page would be huge if all tables were listed and their details of purpose, use, and fields were explained on this page, so for now, only the most important tables critical for server operations will be explained here. == <span id="Important_Interesting_Tables" class="mw-headline"> Important Interesting Tables </span> == * account - this table lists each account (not characters, see the '''entity''' table below), their user id and password (encrypted) * character_ - this table lists each character in the game, their wallet balance, the account that owns them, bounty, sec. status, corp ID, all roles info, and the character's toon creation data (hair, clothes, eyes, morph, etc.) * chrskillqueue - this table stores all characters' skill queue contents; there are fields that indicate skill type and order in the queue as well as the character ID that owns that skill queue entry * chrstandings - this table stores standings from characters to other characters * crpcharshares - this table stores the amount of corporation shares that each character owns in their respective corporation(s) * entity - this table lists all npc and real characters and their location. more importantly, it lists ALL characters' asset items everywhere in the game, their location, owner, quantities, and a few flags * entity_attributes - this table lists attributes of characters, i.e. charisma (id=164), intelligence (id=165), memory (id=166), perception (id=167), will power (id=168) * evemail - this table lists every evemail sent/received in-game, every detail is contained here except the contents of the message, that is stored in the '''evemaildetails''' table * evemaildetails - this table lists every evemail's message contents, the rest of the details of each evemail are stored in the '''evemail''' table * market_journal - this table contains all the data that is shown in the player's Journal tab of the Wallet (player and npc transactions) * market_orders - this table contains all the orders that the players have made inside the eve universe * market_transactions - this table contains all the transaction data that players make inside the eve market (player transactions) * npcstandings - this table stores standings from npc's to characters * roiddistribution - this table hold the asteroid belt makeup data, specifically what roids are to be spawn and in what frequency * spawnbounds - * spawngroupentities - * spawngroups - * spawns - = <span id="Complete_Table_Listing" class="mw-headline"> Complete Table Listing </span> = '''Please keep the same format if you edit this page''' {| | Table Field Name 1 | Table Field Name 2 | Table Field Name 3 |- | Field 1 Description | Field 2 Description | Field 3 Description |- | Link to Table | Links to Table | Links to Table |} * Note, not all fields will link to another table. <br /> == <span id="Accounts" class="mw-headline"> [[Accounts.html|Accounts]] </span> == This is a simple table. It holds you account information. || '''accountID''' || '''accountName''' || '''password''' || '''role''' || '''online''' || || this ties a number to your account, NO two accounts have the same number || this is the name you choose for your account, ie the login name || this is your password, it shows up encrypted in the database || this is the role of the account, ex: Admin, GM, normal Player. || simple, 0 means you are not online, 1 means you are online || <br /> [[EVEmu_Account_Roles.html|See here for details on how the role field is calculated]] == <span id="Accountid" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Accountid&action=edit&redlink=1 Accountid] </span> == This ties a number to your account, No 2 accounts have the same number. || '''accountName''' || '''Password''' || '''Role''' || '''Online''' || ||This is the name you choose for your account || This is your password, it shows up encrypted in the database. || This is the role of the account, ex: Admin, GM, normal Player. A number represents them. 2 = Normal Player 4294967231 = Super admin || Simple, 0 means you are not online, 1 means you are online. || <br /> == <span id="Agtagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtagents&action=edit&redlink=1 Agtagents] </span> == This has basic information about agents. <br /> || '''agentID''' || '''divisionID''' || '''corporationID''' || '''level''' || '''quality''' || '''agentTypeID''' || || Numerical Id for the agent || This is what division the agent works for, IE: Security, R%D... || Numerical ID for the corporation the agent is for || Pretty simple, Level of the agent || Quality of the agent || Type of agent you are dealing with, See agtagenttypes table for more info || == <span id="agtagenttypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtagenttypes&action=edit&redlink=1 agtagenttypes] </span> == This has basic structure for the types of agents. == <span id="agenttypeId" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=AgenttypeId&action=edit&redlink=1 agenttypeId] </span> == Numberical value id, this is referenced with next table agentType agentType - This is what each agent is, look below at table I have created, it is pretty self explanatory. || '''agentTypeID''' || '''agentType''' || || 1 || Nonagent || || 2 || Basicagent || || 3 || Tutorialagent || || 4 || Researchagent || || 5 || CONCORDagent || || 6 || Genericstorylinesissionagent || || 7 || Storylinemissionagent || || 8 || Eventmissionagent || || 9 || Factionalwarfareagent || || 10 || Epicarcagent || == <span id="Agtconfig" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtconfig&action=edit&redlink=1 Agtconfig] </span> == Refers agentId to level and quality == <span id="Agtmissiongroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtmissiongroups&action=edit&redlink=1 Agtmissiongroups] </span> == || '''corporationID''' || '''divisionID''' || '''level''' || '''= missionID''' || <br /> == <span id="agentmissions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agentmissions&action=edit&redlink=1 agentmissions] </span> == || '''missionID''' || '''missionName''' || '''missionLevel''' || '''missionTypeId''' || '''importantMission''' || <br /> == <span id="agtmissiontypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtmissiontypes&action=edit&redlink=1 agtmissiontypes] </span> == || '''missionTypeID''' || '''missionTypeName''' || <br /> == <span id="Agtoffergroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtoffergroups&action=edit&redlink=1 Agtoffergroups] </span> == || '''corporationID''' || '''divisionID''' || '''level''' || '''offered''' || == <span id="agtofferrequired" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtofferrequired&action=edit&redlink=1 agtofferrequired] </span> == || '''offerID''' || '''typeID''' || '''quantity''' || == <span id="agtofferreward" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtofferreward&action=edit&redlink=1 agtofferreward] </span> == || '''offerID''' || '''typeID''' || '''quantity''' || == <span id="agtoffers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtoffers&action=edit&redlink=1 agtoffers] </span> == || '''offerID''' || '''offerName''' || '''offerLevel''' || '''loyaltyPoints''' || '''requiredISK''' || '''rewardISK''' || '''offerText''' || '''offerAcceptedText''' || == <span id="agtresearchagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtresearchagents&action=edit&redlink=1 agtresearchagents] </span> == || '''agentID''' || '''typeID''' || == <span id="alliance_shortnames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Alliance_shortnames&action=edit&redlink=1 alliance_shortnames] </span> == == <span id="billspayable" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billspayable&action=edit&redlink=1 billspayable] </span> == || '''billID''' || '''billTypeId''' || '''debtorID''' || '''creditorID''' || '''amount''' || '''dueDateTime''' || '''interest''' || '''externalID''' || '''paid''' || '''externalID2''' || <br /> == <span id="billsreceivable" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billsreceivable&action=edit&redlink=1 billsreceivable] </span> == || '''billID''' || '''billTypeId''' || '''debtorID''' || '''creditorID''' || '''amount''' || '''dueDateTime''' || '''interest''' || '''externalID''' || '''paid''' || '''externalID2''' || == <span id="billtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billtypes&action=edit&redlink=1 billtypes] </span> == Simple, Links billtypeID to billTypeName , Number value to a Name || '''billTypeID''' || '''billTypeName''' || || 1 || Market Fine || || 2 || Rental Bill || || 3 || Broker Bill || || 4 || War Bill || || 5 || Alliance maintenance Bill || <br /> == <span id="Bloodlinetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Bloodlinetypes&action=edit&redlink=1 Bloodlinetypes] </span> == links bloodlineID to TypeID == <span id="Bookmarks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Bookmarks&action=edit&redlink=1 Bookmarks] </span> == this is where bookmarks in space should be created. <br /> == <span id="cachelocations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Cachelocations&action=edit&redlink=1 cachelocations] </span> == == <span id="cacheowners" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Cacheowners&action=edit&redlink=1 cacheowners] </span> == == <span id="channelchars" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channelchars&action=edit&redlink=1 channelchars] </span> == == <span id="channelmods" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channelmods&action=edit&redlink=1 channelmods] </span> == == <span id="channels" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channels&action=edit&redlink=1 channels] </span> == == <span id="channeltypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channeltypes&action=edit&redlink=1 channeltypes] </span> == == <span id="character" class="mw-headline"> [[Character.html|character_]] </span> == == <span id="characterstatic" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Characterstatic&action=edit&redlink=1 characterstatic] </span> == == <span id="chraccessories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chraccessories&action=edit&redlink=1 chraccessories] </span> == == <span id="chrancestries" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrancestries&action=edit&redlink=1 chrancestries] </span> == || '''ancestryID''' || '''ancestryName''' || '''bloodlineID''' || '''description''' || '''perception''' || willpower '''||''' charisma '''||''' memory '''||''' intelligence '''||''' graphicID '''||''' shortDescription '''||''' || Unique ID of ancestry, Should be primary Key || Name of ancestry || Bloodline in which ancestry belongs to. || Description of the Ancestry || Atrribute bonus for the ancestry - Perception || Atrribute bonus for the ancestry - Willpower || Atrribute bonus for the ancestry - Charisma || Atrribute bonus for the ancestry - Memory || Atrribute bonus for the ancestry - Intelligence || Icon for this ancestry || Short Description of ancestry || <br /> == <span id="chrapplications" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrapplications&action=edit&redlink=1 chrapplications] </span> == == <span id="chrattributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrattributes&action=edit&redlink=1 chrattributes] </span> == The attributeID's for the characters attributes. == <span id="chrbackgrounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbackgrounds&action=edit&redlink=1 chrbackgrounds] </span> == == <span id="chrbeards" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbeards&action=edit&redlink=1 chrbeards] </span> == == <span id="chrblaccessories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblaccessories&action=edit&redlink=1 chrblaccessories] </span> == == <span id="chrblbackgrounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblbackgrounds&action=edit&redlink=1 chrblbackgrounds] </span> == == <span id="chrblbeards" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblbeards&action=edit&redlink=1 chrblbeards] </span> == == <span id="chrblcostumes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblcostumes&action=edit&redlink=1 chrblcostumes] </span> == == <span id="chrbldecos" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbldecos&action=edit&redlink=1 chrbldecos] </span> == == <span id="chrbleyebrows" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbleyebrows&action=edit&redlink=1 chrbleyebrows] </span> == == <span id="chrbleyes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbleyes&action=edit&redlink=1 chrbleyes] </span> == == <span id="chrblhairs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblhairs&action=edit&redlink=1 chrblhairs] </span> == == <span id="chrbllights" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbllights&action=edit&redlink=1 chrbllights] </span> == == <span id="chrbllipsticks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbllipsticks&action=edit&redlink=1 chrbllipsticks] </span> == == <span id="chrblmakeups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblmakeups&action=edit&redlink=1 chrblmakeups] </span> == == <span id="chrbloodlines" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbloodlines&action=edit&redlink=1 chrbloodlines] </span> == == <span id="chrblskins" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblskins&action=edit&redlink=1 chrblskins] </span> == == <span id="chrcareers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcareers&action=edit&redlink=1 chrcareers] </span> == == <span id="chrcareerspecialities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcareerspecialities&action=edit&redlink=1 chrcareerspecialities] </span> == == <span id="chrcostumes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcostumes&action=edit&redlink=1 chrcostumes] </span> == == <span id="chrdecos" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrdecos&action=edit&redlink=1 chrdecos] </span> == == <span id="chrdepartments" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrdepartments&action=edit&redlink=1 chrdepartments] </span> == == <span id="chremployment" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chremployment&action=edit&redlink=1 chremployment] </span> == == <span id="chreyebrows" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chreyebrows&action=edit&redlink=1 chreyebrows] </span> == == <span id="chreyes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chreyes&action=edit&redlink=1 chreyes] </span> == == <span id="chrfactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrfactions&action=edit&redlink=1 chrfactions] </span> == == <span id="chrhairs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrhairs&action=edit&redlink=1 chrhairs] </span> == == <span id="chrlights" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrlights&action=edit&redlink=1 chrlights] </span> == == <span id="chrlipsticks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrlipsticks&action=edit&redlink=1 chrlipsticks] </span> == == <span id="chrmakeups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrmakeups&action=edit&redlink=1 chrmakeups] </span> == == <span id="chrmissionstate" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrmissionstate&action=edit&redlink=1 chrmissionstate] </span> == == <span id="chrnotes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrnotes&action=edit&redlink=1 chrnotes] </span> == == <span id="chrnpcstandings" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrnpcstandings&action=edit&redlink=1 chrnpcstandings] </span> == == <span id="chroffers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chroffers&action=edit&redlink=1 chroffers] </span> == == <span id="chrownernote" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrownernote&action=edit&redlink=1 chrownernote] </span> == == <span id="chrraces" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrraces&action=edit&redlink=1 chrraces] </span> == == <span id="chrraceskills" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrraceskills&action=edit&redlink=1 chrraceskills] </span> == == <span id="chrschoolagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrschoolagents&action=edit&redlink=1 chrschoolagents] </span> == == <span id="chrschools" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrschools&action=edit&redlink=1 chrschools] </span> == List of starting schools for new characters. == <span id="chrskillqueue" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrskillqueue&action=edit&redlink=1 chrskillqueue] </span> == == <span id="chrskins" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrskins&action=edit&redlink=1 chrskins] </span> == == <span id="chrstandings" class="mw-headline"> [[Chrstandings.html|chrstandings]] </span> == This is the relationship between the player and the NPC. == <span id="corporation" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation] </span> == Lists corporations and basic information. == <span id="corporationstatic" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Corporationstatic&action=edit&redlink=1 corporationstatic] </span> == == <span id="couriermissions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Couriermissions&action=edit&redlink=1 couriermissions] </span> == == <span id="crpactivities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpactivities&action=edit&redlink=1 crpactivities] </span> == == <span id="crpcharshares" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpcharshares&action=edit&redlink=1 crpcharshares] </span> == == <span id="crpnpccorporationdivisions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationdivisions&action=edit&redlink=1 crpnpccorporationdivisions] </span> == == <span id="crpnpccorporationresearchfields" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationresearchfields&action=edit&redlink=1 crpnpccorporationresearchfields] </span> == == <span id="crpnpccorporations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporations&action=edit&redlink=1 crpnpccorporations] </span> == == <span id="crpnpccorporationtrades" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationtrades&action=edit&redlink=1 crpnpccorporationtrades] </span> == == <span id="crpnpcdivisions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpcdivisions&action=edit&redlink=1 crpnpcdivisions] </span> == == <span id="crpnpctickernames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpctickernames&action=edit&redlink=1 crpnpctickernames] </span> == == <span id="crpoffices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpoffices&action=edit&redlink=1 crpoffices] </span> == == <span id="crtcategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtcategories&action=edit&redlink=1 crtcategories] </span> == || '''categoryID''' || '''description''' || '''catagoryName''' || || Unique ID of this catagory || Description of the catagory || Name of the catagory || <br /> == <span id="crtcertificates" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtcertificates&action=edit&redlink=1 crtcertificates] </span> == List of all certificates || '''certificateID''' || '''catagoryID''' || '''classID''' || '''grade''' || '''corpID''' || '''iconID''' || '''description''' || || Unique ID of the certificate. Should be primary Key || Catagory of the Certificate || Class of the certificate || Grade of the certificate. 1=basic, 2=standard, 3=improved, 5=elite, They cant count, they forgot 4. || Corporation of the certificate || Icon of the certificate || Description of the Certificate || || || crtCatergories.categoryID || crtClasses.classID || || crpNPCCorporations.corporationID || || || <br /> == <span id="crtclasses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtclasses&action=edit&redlink=1 crtclasses] </span> == || '''classID''' || '''description''' || '''className''' || || Unique ID of the class, should be primary key || Description of the class. || Name of the Class. || <br /> == <span id="crtrecommendations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtrecommendations&action=edit&redlink=1 crtrecommendations] </span> == || '''recommendationID''' || '''shipTypeID''' || '''certificateID''' || '''recommendationLevel''' || || Unique ID of recommendation, Should be primary key || typeID of ship || CertificateID of recommendation. || || || || invTypes.typeID || crtCertificates.certificateID || || <br /> == <span id="crtrelationships" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtrelationships&action=edit&redlink=1 crtrelationships] </span> == || '''relationshipID''' || '''parentID''' || '''parentTypeID''' || '''parentLevel''' || '''childID''' || || Unique ID of the relationship, Should be primary Key || CertificateID of the certificate || Links to skill in item table || Name of the class || CertificateID of certificates requiring the certificate || || || crtCertificates.certificateID || invTypes.typeID || || crtCertificates.certificateID || <br /> == <span id="dgmattributecategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmattributecategories&action=edit&redlink=1 dgmattributecategories] </span> == == <span id="dgmattributetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmattributetypes&action=edit&redlink=1 dgmattributetypes] </span> == == <span id="dgmeffects" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmeffects&action=edit&redlink=1 dgmeffects] </span> == == <span id="dgmEffectsInfo" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmEffectsInfo&action=edit&redlink=1 dgmEffectsInfo] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmEffectsInfo table Fields ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |} == <span id="dgmEffectsActions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmEffectsActions&action=edit&redlink=1 dgmEffectsActions] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmEffectsActions table Fields ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |} == <span id="dgmShipBonusModifiers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmShipBonusModifiers&action=edit&redlink=1 dgmShipBonusModifiers] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmShipBonusModifiers table Fields ! effectID ! attributeSkillID ! attributeSkillLevel ! sourceAttributeID ! targetAttributeID ! calculationTypeID ! reverseCalculationTypeID ! effectAppliedTo ! targetEquipmentType ! targetGroupIDs |} Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Type_Attribute_Modifiers|Type Attribute Modifiers Processing]]. <br /> == <span id="dgmSkillBonusModifiers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmSkillBonusModifiers&action=edit&redlink=1 dgmSkillBonusModifiers] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmSkillBonusModifiers table Fields ! effectID ! sourceAttributeID ! targetAttributeID ! calculationTypeID ! reverseCalculationTypeID ! effectAppliedTo ! targetEquipmentType ! targetGroupIDs |} Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Type_Attribute_Modifiers|Type Attribute Modifiers Processing]]. == <span id="dgmtypeattributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmtypeattributes&action=edit&redlink=1 dgmtypeattributes] </span> == == <span id="dgmtypeeffects" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmtypeeffects&action=edit&redlink=1 dgmtypeeffects] </span> == == <span id="dronestate" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dronestate&action=edit&redlink=1 dronestate] </span> == == <span id="entity" class="mw-headline"> [[Entity.html|entity]] </span> == This details each individual thing in the game. From individual stack of items to planets to ships and npcs to attached modules and ammo. Characters and implants. It is all listed here. Refers to the [[Invtypes.html|invtypes]], [[Stastations.html|stastations]], [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] and [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] tables. == <span id="entity_attributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Entity_attributes&action=edit&redlink=1 entity_attributes] </span> == == <span id="eveconstants" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Eveconstants&action=edit&redlink=1 eveconstants] </span> == == <span id="evegraphics" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evegraphics&action=edit&redlink=1 evegraphics] </span> == == <span id="evemail" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemail&action=edit&redlink=1 evemail] </span> == == <span id="evemaildetails" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemaildetails&action=edit&redlink=1 evemaildetails] </span> == == <span id="evemailmimetype" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemailmimetype&action=edit&redlink=1 evemailmimetype] </span> == == <span id="evemessages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemessages&action=edit&redlink=1 evemessages] </span> == == <span id="evenames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evenames&action=edit&redlink=1 evenames] </span> == == <span id="everoles" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Everoles&action=edit&redlink=1 everoles] </span> == == <span id="evestaticlocations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evestaticlocations&action=edit&redlink=1 evestaticlocations] </span> == == <span id="evestaticowners" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evestaticowners&action=edit&redlink=1 evestaticowners] </span> == == <span id="eveunits" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Eveunits&action=edit&redlink=1 eveunits] </span> == == <span id="factionraces" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Factionraces&action=edit&redlink=1 factionraces] </span> == == <span id="intro" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Intro&action=edit&redlink=1 intro] </span> == == <span id="invblueprints" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invblueprints&action=edit&redlink=1 invblueprints] </span> == == <span id="invblueprinttypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invblueprinttypes&action=edit&redlink=1 invblueprinttypes] </span> == == <span id="invcategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcategories&action=edit&redlink=1 invcategories] </span> == == <span id="invcontrabandtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontrabandtypes&action=edit&redlink=1 invcontrabandtypes] </span> == == <span id="invcontroltowerresourcepurposes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontroltowerresourcepurposes&action=edit&redlink=1 invcontroltowerresourcepurposes] </span> == == <span id="invcontroltowerresources" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontroltowerresources&action=edit&redlink=1 invcontroltowerresources] </span> == == <span id="invflags" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] </span> == == <span id="invgroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invgroups&action=edit&redlink=1 invgroups] </span> == == <span id="invmarketgroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmarketgroups&action=edit&redlink=1 invmarketgroups] </span> == == <span id="invmetagroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmetagroups&action=edit&redlink=1 invmetagroups] </span> == == <span id="invmetatypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmetatypes&action=edit&redlink=1 invmetatypes] </span> == == <span id="invtypematerials" class="mw-headline"> [[Invtypematerials.html|invtypematerials]] </span> == Details the refining/reprocessing/manufacturing of items. Refers to the [[Invtypes.html|invtypes]] table. == <span id="invshiptypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invshiptypes&action=edit&redlink=1 invshiptypes] </span> == == <span id="invtypereactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invtypereactions&action=edit&redlink=1 invtypereactions] </span> == == <span id="invtypes" class="mw-headline"> [[Invtypes.html|invtypes]] </span> == Details basic information about game items, ships and other objects. Several tables refer to here. If you are interested in making new modules or ships you should start here. == <span id="invtypestowrecks" class="mw-headline"> [[Invtypestowrecks.html|invtypestowrecks]] </span> == Links the destroyed ships or structures to wrecks. It only refers to [[Invtypes.html|invtypes]]. == <span id="invuniquenames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invuniquenames&action=edit&redlink=1 invuniquenames] </span> == == <span id="languages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Languages&action=edit&redlink=1 languages] </span> == Languages used in EVE == <span id="liveupdates" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Liveupdates&action=edit&redlink=1 liveupdates] </span> == == <span id="locationscenes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Locationscenes&action=edit&redlink=1 locationscenes] </span> == == <span id="lprequireditems" class="mw-headline"> [[Lprequireditems.html|lprequireditems]] </span> == The items required to purchase (if applicable) at the LP Store. It has relationships to [[Invtypes.html|invtypes]] and [[Lpstore.html|lpstore]]. == <span id="lpstore" class="mw-headline"> [[Lpstore.html|lpstore]] </span> == What itemTypes appear listed in the store and where. It has relationships to [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [[Invtypes.html|invtypes]] and [[Lprequireditems.html|Lprequireditems]]. == <span id="lpverified" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Lpverified&action=edit&redlink=1 lpverified] </span> == Checks for the LPstore == <span id="maillabel" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maillabel&action=edit&redlink=1 maillabel] </span> == == <span id="mailmessage" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mailmessage&action=edit&redlink=1 mailmessage] </span> == == <span id="mapcelestialstatistics" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapcelestialstatistics&action=edit&redlink=1 mapcelestialstatistics] </span> == == <span id="mapconstellationjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapconstellationjumps&action=edit&redlink=1 mapconstellationjumps] </span> == == <span id="mapconstellations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapconstellations&action=edit&redlink=1 mapconstellations] </span> == == <span id="mapdenormalize" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapdenormalize&action=edit&redlink=1 mapdenormalize] </span> == == <span id="mapjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapjumps&action=edit&redlink=1 mapjumps] </span> == == <span id="maplandmarks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maplandmarks&action=edit&redlink=1 maplandmarks] </span> == == <span id="maplocationwormholeclasses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maplocationwormholeclasses&action=edit&redlink=1 maplocationwormholeclasses] </span> == == <span id="mapregionjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapregionjumps&action=edit&redlink=1 mapregionjumps] </span> == == <span id="mapregions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] </span> == == <span id="mapsolarsystemjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapsolarsystemjumps&action=edit&redlink=1 mapsolarsystemjumps] </span> == == <span id="mapsolarsystems" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] </span> == == <span id="mapuniverse" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapuniverse&action=edit&redlink=1 mapuniverse] </span> == == <span id="market_history_old" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_history_old&action=edit&redlink=1 market_history_old] </span> == == <span id="market_journal" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_journal&action=edit&redlink=1 market_journal] </span> == == <span id="market_keymap" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_keymap&action=edit&redlink=1 market_keymap] </span> == == <span id="market_orders" class="mw-headline"> [[Market_orders.html|market_orders]] </span> == This table is used to display market orders. It has relationships to [[Invtypes.html|invtypes]], [[Character.html|character_]], [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions], [[Stastations.html|stastations]] and [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems]. == <span id="market_reftypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_reftypes&action=edit&redlink=1 market_reftypes] </span> == == <span id="market_transactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_transactions&action=edit&redlink=1 market_transactions] </span> == == <span id="npcstandings" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Npcstandings&action=edit&redlink=1 npcstandings] </span> == == <span id="ramactivities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramactivities&action=edit&redlink=1 ramactivities] </span> == == <span id="ramassemblylines" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylines&action=edit&redlink=1 ramassemblylines] </span> == == <span id="ramassemblylinestationcostlogs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinestationcostlogs&action=edit&redlink=1 ramassemblylinestationcostlogs] </span> == == <span id="ramassemblylinestations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinestations&action=edit&redlink=1 ramassemblylinestations] </span> == == <span id="ramassemblylinetypedetailpercategory" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypedetailpercategory&action=edit&redlink=1 ramassemblylinetypedetailpercategory] </span> == == <span id="ramassemblylinetypedetailpergroup" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypedetailpergroup&action=edit&redlink=1 ramassemblylinetypedetailpergroup] </span> == == <span id="ramassemblylinetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypes&action=edit&redlink=1 ramassemblylinetypes] </span> == == <span id="ramcompletedstatuses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramcompletedstatuses&action=edit&redlink=1 ramcompletedstatuses] </span> == == <span id="raminstallationtypedefaultcontents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Raminstallationtypedefaultcontents&action=edit&redlink=1 raminstallationtypedefaultcontents] </span> == == <span id="ramjobs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramjobs&action=edit&redlink=1 ramjobs] </span> == == <span id="rentalinfo" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Rentalinfo&action=edit&redlink=1 rentalinfo] </span> == == <span id="roiddistribution" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Roiddistribution&action=edit&redlink=1 roiddistribution] </span> == == <span id="spawnbounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Spawnbounds&action=edit&redlink=1 spawnbounds] </span> == == <span id="spawngroupentries" class="mw-headline"> [[Spawngroupentries.html|spawngroupentries]] </span> == Table that controls the chance to spawn a particular NPC for a corporation. Links to [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [[Invtypes.html|invtypes]], [[Spawngroupentries.html|spawngroupentries]] and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. == <span id="spawngroups" class="mw-headline"> [[Spawngroups.html|spawngroups]] </span> == Links individual spawns together. Links to [[Spawngroupentries.html|spawngroupentries]] and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. == <span id="spawns" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns] </span> == == <span id="srvstatus" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Srvstatus&action=edit&redlink=1 srvstatus] </span> == == <span id="staoperations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staoperations&action=edit&redlink=1 staoperations] </span> == == <span id="staoperationservices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staoperationservices&action=edit&redlink=1 staoperationservices] </span> == == <span id="staservices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staservices&action=edit&redlink=1 staservices] </span> == == <span id="stastations" class="mw-headline"> [[Stastations.html|stastations]] </span> == Station information. Refers to the [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [http://wiki.evemu.dev/index.php?title=Stastationtypes&action=edit&redlink=1 stastationtypes], [http://wiki.evemu.dev/index.php?title=Mapconstellations&action=edit&redlink=1 mapconstellations], [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems], [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] and [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] tables. == <span id="stastationtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Stastationtypes&action=edit&redlink=1 stastationtypes] </span> == == <span id="trntranslationcolumns" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Trntranslationcolumns&action=edit&redlink=1 trntranslationcolumns] </span> == == <span id="trntranslations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Trntranslations&action=edit&redlink=1 trntranslations] </span> == == <span id="tutorial_categories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_categories&action=edit&redlink=1 tutorial_categories] </span> == == <span id="tutorial_criteria" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_criteria&action=edit&redlink=1 tutorial_criteria] </span> == == <span id="tutorial_page_criteria" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_page_criteria&action=edit&redlink=1 tutorial_page_criteria] </span> == == <span id="tutorial_pages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_pages&action=edit&redlink=1 tutorial_pages] </span> == == <span id="tutorials" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorials&action=edit&redlink=1 tutorials] </span> == == <span id="tutorials_criterias" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorials_criterias&action=edit&redlink=1 tutorials_criterias] </span> == == <span id="typeactivitymaterials" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Typeactivitymaterials&action=edit&redlink=1 typeactivitymaterials] </span> == = <span id="Miscellaneous_Info" class="mw-headline"> Miscellaneous Info </span> = == <span id="Skill_Points_-_Clone_Grades" class="mw-headline"> Skill Points - Clone Grades </span> == From dgmtypeattributes table: <br /> skillPointsSaved - &quot;Amount of skill points saved by clone&quot; maxJumpClones hasCloneJumpSlots allowsCloneJumpsWhenActive canReceiveCloneJumps jumpClonesLeft <br /> The first one must be for clone grade. I tried looking for something that stored the skill points accrued by each character, but i bet it doesn't exist and let me explain why: each skill that each character has injected and trained shows up in the entity table with the ownerID of that character, each one of those skills has two entries in the entity_attributes table under its itemID from the entity table: skillPoints and skillLevel. So, the client can figure out how many total skill points are trained if it has the list of skills and the points trained for each. This must mean that the first field in the list above has to be the skill points saved for whichever clone grade you've purchased using station medical services. <br /> Also, if you sort your entity table by ownerID ascending, you should see your primary character entry with an ownerID equal to your accountID in the account table. 2f70b04c5b54f775a4146c93a17c6fb0a2995c06 Category:Game Operation 14 149 181 2021-04-04T00:29:50Z DarksHeiress 7 Created page with "This category holds articles detailing the various features and operations that should be supported by the EVEmu server in the game, with specific notes as to how to implement..." wikitext text/x-wiki This category holds articles detailing the various features and operations that should be supported by the EVEmu server in the game, with specific notes as to how to implement those features in EVEmu. These articles are organized into large functional groups below = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny warping and collisions are not going to be as accurately or exactly calculated as the eve client and official server since we do not have access to their exact math formulas used for these calculations. * All O.R.E. ships with exception of the Rorqual and the Orca have wrecks with typeIDs from '''invTypes''' table in the EVEmu database '''invTypesToWrecks''' table that are specific to Galente-specific wrecks, even though there are similar wrecks for all the other races. At this time, we have no idea why CCP has wrecks for the ORE ships for each race, but we're going to use Galente race wreck types for these ships. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> = <span id="EVEmu_Original_Features" class="mw-headline"> EVEmu Original Features </span> = * [http://wiki.evemu.dev/index.php?title=Category:PCP&action=edit&redlink=1 Player Controlled Players (PCP)] <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Game Operation&quot; == This category contains only the following page. <div class="mw-content-ltr" lang="en" dir="ltr"> === S === * [[Ship_Combat.html|Ship Combat]] f593fc7258f0783c51a88cc85556e0793de005af 182 181 2021-04-04T00:30:34Z DarksHeiress 7 wikitext text/x-wiki This category holds articles detailing the various features and operations that should be supported by the EVEmu server in the game, with specific notes as to how to implement those features in EVEmu. These articles are organized into large functional groups below = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny warping and collisions are not going to be as accurately or exactly calculated as the eve client and official server since we do not have access to their exact math formulas used for these calculations. * All O.R.E. ships with exception of the Rorqual and the Orca have wrecks with typeIDs from '''invTypes''' table in the EVEmu database '''invTypesToWrecks''' table that are specific to Galente-specific wrecks, even though there are similar wrecks for all the other races. At this time, we have no idea why CCP has wrecks for the ORE ships for each race, but we're going to use Galente race wreck types for these ships. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> = <span id="EVEmu_Original_Features" class="mw-headline"> EVEmu Original Features </span> = * [http://wiki.evemu.dev/index.php?title=Category:PCP&action=edit&redlink=1 Player Controlled Players (PCP)] <div lang="en" dir="ltr"> <div id="mw-pages"> dd16b7416a70407dc112fd2cc07580053fc2d486 Category:Users Guide 14 150 183 2021-04-04T00:31:42Z DarksHeiress 7 Created page with "This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;nor..." wikitext text/x-wiki This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [[Category_Game_Operation.html#Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation|this list of deviations from EVE online game play]] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles.html|role assigned to their account]], therefore all characters they create with that account will have GM status. 06e00e000492cb1695ee4de5dc13a165ffc52b39 184 183 2021-04-04T00:33:39Z DarksHeiress 7 wikitext text/x-wiki This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [[Category:Game Operation#Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation|this list of deviations from EVE online game play]] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles.html|role assigned to their account]], therefore all characters they create with that account will have GM status. cdba816b3a23c6952acaf10683a09daa6be88c28 186 184 2021-04-04T00:36:37Z DarksHeiress 7 wikitext text/x-wiki This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [https://wiki.evemu.dev/wiki/Category:Game_Operation#List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation list of known deviations] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles.html|role assigned to their account]], therefore all characters they create with that account will have GM status. 329f3d1a5b1034a0c5e1d2db37193bfc61950935 189 186 2021-04-04T00:45:15Z DarksHeiress 7 wikitext text/x-wiki This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [https://wiki.evemu.dev/wiki/Category:Game_Operation#List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation list of known deviations] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for the status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles|role assigned to their account]], therefore all characters they create with that account will have GM status. 6ca6b7176d147c7a735729d6849177c06b5ef658 202 189 2021-04-04T01:30:55Z DarksHeiress 7 wikitext text/x-wiki This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [https://wiki.evemu.dev/wiki/Category:Game_Operation#List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation list of known deviations] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for the status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles|role assigned to their account]], therefore all characters they create with that account will have GM status. 0cba591399ce7f0a47771630713370091f2e6a8d 204 202 2021-04-04T01:38:43Z DarksHeiress 7 wikitext text/x-wiki This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [https://wiki.evemu.dev/wiki/Category:Game_Operation#List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation list of known deviations] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for the status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles.html|role assigned to their account]], therefore all characters they create with that account will have GM status. cd2a08962211952c32ecf2c7199789e96f9a03eb Old Wiki:Category Users Guide 0 55 185 80 2021-04-04T00:35:22Z DarksHeiress 7 wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| | '''NAVIGATION''' | [[Main_Page.html|HOME]] / '''User's Guide''' (you are here) |} <br /> This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [https://wiki.evemu.dev/wiki/Category:Game_Operation#List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation list of known deviations] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way, except perhaps for the [http://wiki.evemu.dev/index.php?title=PCP&action=edit&redlink=1 PCP System] that is simply not available on EVE online. Check that page for status of its implementation and how to use it. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles.html|role assigned to their account]], therefore all characters they create with that account will have GM status. <div lang="en" dir="ltr"> ''This category currently contains no pages or media.'' </div> </div> 9a292f28cfc4ed8be7409627e3b8d4bf941013f3 EVEmu Account Roles.html 0 152 188 2021-04-04T00:43:38Z DarksHeiress 7 Created page with "= <span id="EVE_Account_Roles" class="mw-headline"> EVE Account Roles </span> = For a list of GM commands [[List_of_Admin_and_GM_Commands.html|go here]]. ==Incursion and Lat..." wikitext text/x-wiki = <span id="EVE_Account_Roles" class="mw-headline"> EVE Account Roles </span> = For a list of GM commands [[List_of_Admin_and_GM_Commands.html|go here]]. ==Incursion and Later Clients== CCP changed the account role field to 64-bits and now use this info: {| ! n ! Role name ! Decimal ! hex ! Description |- | 0 | ROLE_UNK | 1 | 0000 0000 0000 0001 | Not used |- | 1 | ROLE_UNK | 2 | 0000 0000 0000 0002 | Not used |- | 2 | ROLE_UNK | 4 | 0000 0000 0000 0004 | Not used |- | 3 | ROLE_UNK | 8 | 0000 0000 0000 0008 | Not used |- | 4 | ROLE_UNK | 16 | 0000 0000 0000 0010 | Not used |- | 5 | ROLE_UNK | 32 | 0000 0000 0000 0020 | Not used |- | 6 | ROLE_UNK | 64 | 0000 0000 0000 0040 | Not used |- | 7 | ROLE_UNK | 128 | 0000 0000 0000 0080 | Not used |- | 8 | ROLE_PETITIONEE | 256 | 0000 0000 0000 0100 | |- | 9 | ROLE_CENTURION | 2048 | 0000 0000 0000 0800 | |- | 10 | ROLE_WORLDMOD | 4096 | 0000 0000 0000 1000 | |- | 11 | ROLE_UNK | 8192 | 0000 0000 0000 2000 | Not used |- | 12 | ROLE_DBA | 16384 | 0000 0000 0000 4000 | |- | 13 | ROLE_UNK | 32768 | 0000 0000 0000 8000 | Not used |- | 14 | ROLE_UNK | 65536 | 0000 0000 0001 0000 | Not used |- | 15 | ROLE_REMOTESERVICE | 131072 | 0000 0000 0002 0000 | |- | 16 | ROLE_LEGIONEER | 262144 | 0000 0000 0004 0000 | |- | 17 | ROLE_TRANSLATION | 524288 | 0000 0000 0008 0000 | |- | 18 | ROLE_CHTINVISIBLE | 1048576 | 0000 0000 0010 0000 | Flag the connection as a remote service |- | 19 | ROLE_CHTADMINISTRATOR | 2097152 | 0000 0000 0020 0000 | |- | 20 | ROLE_HEALSELF | 4194304 | 0000 0000 0040 0000 | Allow and add the gui options to heal self |- | 21 | ROLE_HEALOTHERS | 8388608 | 0000 0000 0080 0000 | Allow and add the gui optns to heal others |- | 22 | ROLE_NEWSREPORTER | 16777216 | 0000 0000 0100 0000 | |- | 23 | ROLE_UNK | 33554432 | 0000 0000 0200 0000 | Not used |- | 24 | ROLE_UNK | 67108864 | 0000 0000 0400 0000 | Not used |- | 25 | ROLE_TRANSLATIONADMIN | 134217728 | 0000 0000 0800 0000 | |- | 26 | ROLE_UNK | 268435456 | 0000 0000 1000 0000 | Not used |- | 27 | ROLE_ACCOUNTMANAGEMENT | 536870912 | 0000 0000 2000 0000 | |- | 28 | ROLE_UNK | 1073741824 | 0000 0000 4000 0000 | Not used |- | 29 | ROLE_IGB | 2147483648 | 0000 0000 8000 0000 | |- | 20 | ROLE_TRANSLATIONEDITOR | 4294967296 | 0000 0001 0000 0000 | |- | 31 | ROLE_SPAWN | 8589934592 | 0000 0002 0000 0000 | |- | 32 | ROLE_TRANSLATIONTESTER | 34359738368 | 0000 0008 0000 0000 | |- | 33 | ROLE_WIKIEDITOR | 68719476736 | 0000 0010 0000 0000 | |- | 34 | ROLE_TRANSFER | 137438953472 | 0000 0020 0000 0000 | |- | 35 | ROLE_GMS | 274877906944 | 0000 0040 0000 0000 | |- | 36 | ROLE_CL | 549755813888 | 0000 0080 0000 0000 | |- | 37 | ROLE_CR | 1099511627776 | 0000 0100 0000 0000 | |- | 38 | ROLE_CM | 2199023255552 | 0000 0200 0000 0000 | |- | 39 | ROLE_MARKET | 4398046511104 | 0000 0400 0000 0000 | |- | 40 | ROLE_MARKETH | 8796093022208 | 0000 0800 0000 0000 | |- | 41 | ROLE_UNK | 17592186044416 | 0000 1000 0000 0000 | Not used |- | 42 | ROLE_BSDADMIN | 35184372088832 | 0000 2000 0000 0000 | |- | 43 | ROLE_CSMADMIN | 70368744177664 | 0000 4000 0000 0000 | |- | 44 | ROLE_CSMDELEGATE | 140737488355328 | 0000 8000 0000 0000 | |- | 45 | ROLE_EXPOPLAYER | 281474976710656 | 0001 0000 0000 0000 | |- | 46 | ROLE_BANNING | 562949953421312 | 0002 0000 0000 0000 | |- | 47 | ROLE_DUST | 1125899906842624 | 0004 0000 0000 0000 | Flag the connection / player as a Dust player / client |- | 48 | ROLE_PROGRAMMER | 2251799813685248 | 0008 0000 0000 0000 | |- | 49 | ROLE_QA | 4503599627370496 | 0010 0000 0000 0000 | |- | 50 | ROLE_GMH | 9007199254740992 | 0020 0000 0000 0000 | |- | 51 | ROLE_GML | 18014398509481984 | 0040 0000 0000 0000 | |- | 52 | ROLE_CONTENT | 36028797018963968 | 0080 0000 0000 0000 | |- | 53 | ROLE_ADMIN | 72057594037927936 | 0100 0000 0000 0000 | |- | 54 | ROLE_VIPLOGIN | 144115188075855872 | 0200 0000 0000 0000 | Flag the connection / player as VIP, this initialy would suggest those people can still login when the server is full |- | 55 | ROLE_ROLEADMIN | 288230376151711744 | 0400 0000 0000 0000 | |- | 56 | ROLE_NEWBIE | 576460752303423488 | 0800 0000 0000 0000 | Flag the connection / player as newbie so it can get the extra help chat channels by default |- | 57 | ROLE_SERVICE | 1152921504606846976 | 1000 0000 0000 0000 | Flag the connection as service |- | 58 | ROLE_PLAYER | 2305843009213693952 | 2000 0000 0000 0000 | Flag the connection as player |- | 59 | ROLE_LOGIN | 4611686018427387904 | 4000 0000 0000 0000 | Adds the ability to login, this is required for players |} <br /> <pre>ROLE_ANY = (18446744073709551615L &amp; ~ROLE_IGB) ROLEMASK_ELEVATEDPLAYER = (ROLE_ANY &amp; ~(((ROLE_LOGIN | ROLE_PLAYER) | ROLE_NEWBIE) | ROLE_VIPLOGIN)) ROLEMASK_VIEW = ((((ROLE_ADMIN | ROLE_CONTENT) | ROLE_GML) | ROLE_GMH) | ROLE_QA)</pre> ''NOTE:''' We've done some experimentation to determine the right role value to allow access to slash commands, GIVE skills for items and ships, as well as full access to the Insider tool bar. This role is calculated using this equation from the role constants above: <pre>ROLEMASK_GRAVY = ROLE_LOGIN | ROLE_ROLEADMIN | ROLE_ADMIN | ROLE_GML | ROLE_GMH | ROLE_QA</pre> <pre>ROLEMASK_GRAVY = 5003499186008621056</pre> <pre>ROLE_ANY = (18446744073709551615L &amp; ~ROLE_IGB)</pre> <pre>ROLEMASK_ELEVATEDPLAYER = (ROLE_ANY &amp; ~(((ROLE_LOGIN | ROLE_PLAYER) | ROLE_NEWBIE) | ROLE_VIPLOGIN))</pre> <br /> <pre>ROLEMASK_VIEW = ((((ROLE_ADMIN | ROLE_CONTENT) | ROLE_GML) | ROLE_GMH) | ROLE_QA)</pre> service.ROLEMASK_ELEVATEDPLAYER = (service.ROLEMASK_ELEVATEDPLAYER &amp; ~ROLE_NEWSREPORTER) == <span id="Apocrypha_and_Earlier_Clients" class="mw-headline"> Apocrypha and Earlier Clients </span> == {| ! n ! Role name ! Decimal ! hex ! Description |- | 0 | Login | 1 | 0000 0000 0000 0001 | Adds the ability to login, this is required for players |- | 1 | Player | 2 | 0000 0000 0000 0002 | Flag the connection as player |- | 2 | GDNPC | 4 | 0000 0000 0000 0004 | |- | 3 | GML | 8 | 0000 0000 0000 0008 | |- | 4 | GMH | 16 | 0000 0000 0000 0010 | |- | 5 | Admin | 32 | 0000 0000 0000 0020 | Flag the player as a ADMIN |- | 6 | Service | 64 | 0000 0000 0000 0040 | Flag the connection as service |- | 7 | HTTP | 128 | 0000 0000 0000 0080 | |- | 8 | Petitionee | 256 | 0000 0000 0000 0100 | |- | 9 | GDL | 512 | 0000 0000 0000 0200 | |- | 10 | GDH | 1024 | 0000 0000 0000 0400 | |- | 11 | Centurion | 2048 | 0000 0000 0000 0800 | |- | 12 | WorldMod | 4096 | 0000 0000 0000 1000 | |- | 13 | QA | 8192 | 0000 0000 0000 2000 | |- | 14 | DBA | 16384 | 0000 0000 0000 4000 | |- | 15 | RoleAdmin | 32768 | 0000 0000 0000 8000 | This ADMIN can change people's ROLE |- | 16 | Programmer | 65536 | 0000 0000 0001 0000 | This GM is a programmer and is allowed to use programmer tools |- | 17 | RemoteService | 131072 | 0000 0000 0002 0000 | Flag the connection as a remote service |- | 18 | Legioneer | 262144 | 0000 0000 0004 0000 | |- | 19 | Translation | 524288 | 0000 0000 0008 0000 | |- | 20 | ChatInvisible | 1048576 | 0000 0000 0010 0000 | |- | 21 | ChatAdministrator | 2097152 | 0000 0000 0020 0000 | This ADMIN is a chat administrator |- | 22 | HealSelf | 4194304 | 0000 0000 0040 0000 | This GM can heal himself |- | 23 | HealOthers | 8388608 | 0000 0000 0080 0000 | This GM can heal others |- | 24 | NewsReporter | 16777216 | 0000 0000 0100 0000 | |- | 25 | Hosting | 33554432 | 0000 0000 0200 0000 | |- | 26 | Broadcast | 67108864 | 0000 0000 0400 0000 | |- | 27 | TranslationAdmin | 134217728 | 0000 0000 0800 0000 | This ADMIN can change translations |- | 28 | Noobie | 268435456 | 0000 0000 1000 0000 | Flag the connection / player as newbie so it can get the extra help chat channels by default |- | 29 | AccountManagement | 536870912 | 0000 0000 2000 0000 | This GM can manage mission instances called dungeons |- | 30 | DungeonMaster | 1073741824 | 0000 0000 4000 0000 | |- | 31 | IGB | 2147483648 | 0000 0000 8000 0000 | |- | 32 | TranslationEditor | 4294967296 | 0000 0001 0000 0000 | isn't this one more than 32 bits? whats happening here.... |- | 33 | Spawn | 8589934592 | 0000 0002 0000 0000 | |- | 34 | VIPLogin | 17179869184 | 0000 0004 0000 0000 | |- | 35 | TranslationTester | 34359738368 | 0000 0008 0000 0000 | |- | 36 | WikiEditor | 68719476736 | 0000 0010 0000 0000 | |- | 37 | Transfer | 137438953472 | 0000 0020 0000 0000 | |- | 38 | GMS | 274877906944 | 0000 0040 0000 0000 | |- | 39 | EveOnline | 549755813888 | 0000 0080 0000 0000 | |- | 40 | CR | 1099511627776 | 0000 0100 0000 0000 | |- | 41 | CM | 2199023255552 | 0000 0200 0000 0000 | |- | 42 | Market | 4398046511104 | 0000 0400 0000 0000 | |- | 43 | MarketH | 8796093022208 | 0000 0800 0000 0000 | |- | 44 | BusinessPartner | 17592186044416 | 0000 1000 0000 0000 | |- | 45 | BSDAdmin | 35184372088832 | 0000 2000 0000 0000 | |- | 46 | CSMAdmin | 70368744177664 | 0000 4000 0000 0000 | |- | 47 | CSMDelegate | 140737488355328 | 0000 8000 0000 0000 | |- | 48 | ExpoPlayer | 281474976710656 | 0001 0000 0000 0000 | |- | 49 | Banning | 562949953421312 | 0002 0000 0000 0000 | |} 5e71871219ada567a6eda1dc8a358b32e7a668d7 Main Page/Developer Links 0 8 190 15 2021-04-04T00:47:48Z DarksHeiress 7 wikitext text/x-wiki '''Use these links to learn about development status and ongoing development work:''' * ACTIVE ** [[ Crucible Project Status]] | [[ Project Plan]] * RESOURCES ** [[ EVEmu Development]] ** [[ Getting Started]] ** [[ Development Team]] ** [[ Development Practices]] ** [[ Source Code]] ** [[ Testing EVEmu | Testing EVEmu ]] ** [[ Connect with EVEmu Community]] - Discord * OLD BRANCHS [INACTIVE] ** [[ Incursion Project Status]] 75e800554ee239cd86132a07a4da53a16988e1f7 192 190 2021-04-04T00:53:39Z DarksHeiress 7 wikitext text/x-wiki '''Use these links to learn about development status and ongoing development work:''' * ACTIVE ** [[ Crucible Project Status]] | [[ Project Plan]] * RESOURCES ** [[ EVEmu Development]] ** [[ Getting Started]] ** [[ Development Team]] ** [[ Development Practices]] ** [[ Source Code]] ** [[ Testing EVEmu | Testing EVEmu ]] ** [[EVEmu_Connect|Connect with the community]] 8804d8fd07e5d9cd887509511031621c5074a01f Main Page/Admin Links 0 153 191 2021-04-04T00:50:59Z DarksHeiress 7 Created page with "'''Use these links to learn about tools used to administer a server:''' * [[List of Admin and GM Commands]]" wikitext text/x-wiki '''Use these links to learn about tools used to administer a server:''' * [[List of Admin and GM Commands]] 6de7b6022fe1ebed334fc90b22dfd084e101c855 201 191 2021-04-04T01:30:18Z DarksHeiress 7 wikitext text/x-wiki '''Use these links to learn about tools used to administer a server:''' * [[List_of_Admin_and_GM_Commands.html|List of Admin and GM Commands]] c22a44d855d0ce65dda915e16d3971975f6504c4 Source Code 0 24 194 47 2021-04-04T00:57:24Z DarksHeiress 7 wikitext text/x-wiki == Main Repositories == === Crucible (The current development branch) === * https://github.com/EvEmu-Project/evemu_crucible [https://github.com/EvEmu-Project/evemu_crucible] === EVEmu Control Panel V2 === * https://github.com/evemuproject/evemu_control_panel_v2.0 [https://github.com/evemuproject/evemu_control_panel_v2.0] == Third party repositories == A list of '''community-driven repositories''' Crucible (The current development branch) (Active as of 06.2016) * https://github.com/eve-moo/evemu_server [https://github.com/eve-moo/evemu_server] Complete backup of all critical GitHub repos (synced from GitHub hourly) * https://gitlab.com/evemuproject f2d7f95259c95a72ad25b63fb5c1a7c59699e610 206 194 2021-04-04T01:42:04Z DarksHeiress 7 wikitext text/x-wiki == Main Repositories == === Crucible (The current development branch) === * https://github.com/EvEmu-Project/evemu_crucible [https://github.com/EvEmu-Project/evemu_crucible] === EVEmu Control Panel V2 === * https://github.com/evemuproject/evemu_control_panel_v2.0 [https://github.com/evemuproject/evemu_control_panel_v2.0] == Third party repositories == A list of '''community-driven repositories''' Crucible (The current development branch) (Active as of 06.2016) * https://github.com/eve-moo/evemu_server [https://github.com/eve-moo/evemu_server] d5e243632fd2fbb9624aa6532ef6b75cafd0c8d4 Crucible Project Status 0 7 195 13 2021-04-04T00:58:54Z DarksHeiress 7 wikitext text/x-wiki = Crucible = __TOC__ == Development Activities == Various developers are working on their little preferred areas and pet projects, so head on over to the [[EVEmu Development Team]] page to see what they are currently working on at the moment. == Features == This is a comprehensive list of medium to high level features of the entire game experience that we've identified so far are ones we want to work on to fully implement as best as we are able to. If anyone finds something missing from this list, please feel free to post something in the [[Forums|Development Forum]] or find a [[EVEmu Development Team|developer]] in [[IRC]]. {{-}} {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- |Login | class="working" |{{Progress bar|95|text=''}} ||Character Selection Screen still needs all character info changed from static data to data pulled from database (balance, current location, skill points, etc) |- | class="heading" colspan="3" |Character |- | - Selection | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Creation | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Skill Training | class="working" |{{Progress bar|100|text=''}} ||Working, with bugs |- | - Market Buying/Selling? | class="working" |{{Progress bar|100|text=''}} ||Testing Needed |- | - Modules | class="working" |{{Progress bar|5|text=''}} ||Very Early Development |- | - Fleets | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - Ship Combat | class="working" |{{Progress bar|5|text=''}} ||some aspects of targeting do work |- | - Chatting | class="working" |{{Progress bar|80|text=''}} ||Needs testing in Crucible Client |- | - EvE Mail | class="working" |{{Progress bar|50|text=''}} ||Broken (Failed to load mailbox) |- | - Mining | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Station Services | class="working" |{{Progress bar|50|text=''}} ||Mostly NOT working |- | - Missions | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - NPCs | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL - awaiting Modules |- | - POSs | class="working" |{{Progress bar|0|text=''}} ||NON-OPERATIONAL |- | - Corporations/Alliances | class="working" |{{Progress bar|30|text=''}} ||PARTIALLY WORKS |- | - EvE Server API | class="working" |{{Progress bar|10|text=''}} ||OPERATIONAL, with limited API calls implemented |} == System Foundation Fundamentals == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Efficient, Accurate Packet Deciphering | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Further Mutex-ing | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Complete Object Attribute Management overhaul | class="working" |{{Progress bar|100|text=''}} ||COMPLETE |- | - Complete investigation of remaining database fields | class="working" |{{Progress bar|0|text=''}} ||in progress |- | - Proper spawning and item creating | class="working" |{{Progress bar|60|text=''}} ||Many Celestials, All Ships, All Items |- | - Item Handling | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Eliminate all compiler Warnings from the EVEmu solution | class="working" |{{Progress bar|100|text=''}} ||COMPLETE |- | - Complete rewrite/relook at [[Destiny]] | class="working" |{{Progress bar|0|text=''}} ||very buggy |} = All the items need to be verified under new Crucible Client = == General Interface Features == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Get Item Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Ship Info | class="working" |{{Progress bar|90|text=''}} ||Mostly working, for some ships for some reason, it shows nothing |- | - Get Skill Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Certification Info | class="working" |{{Progress bar|100|text=''}} ||N/A |- | - Get Character Info | class="working" |{{Progress bar|80|text=''}} ||Corporation info is not there, Standing and Decorations tabs broken |- | - Get NPC Corporation Info | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Get Player Corporation Info | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Account and Character Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Account Login | class="working" |{{Progress bar|75|text=''}} ||Mostly working, character select screen data is mostly hard-coded, requires database lookup |- | - Account Banning/Kicking | class="working" |{{Progress bar|60|text=''}} ||In Progress |- | - Character Creation | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character Deletion | class="working" |{{Progress bar|40|text=''}} ||Working, incomplete |- | - Character entrance to last location | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Skills Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Open Certificate Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Open Decorations Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Attributes Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Neural Remap | class="working" |{{Progress bar|0|text=''}} ||Implemented - NEEDS TESTING |- | - Open Augmentations Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Jump Clones Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Bio Window | class="working" |{{Progress bar|75|text=''}} ||unknown |- | - Open Employment History Window | class="working" |{{Progress bar|75|text=''}} ||unknown |- | - Open Standings Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Security Status Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Kill Rights Window | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Open Combat Log Window | class="working" |{{Progress bar|0|text=''}} ||unknown |} == Skills - Certificates - Implants - Clones == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Browse Skills to train | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Add skills to queue | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Filter skills that don't fit in queue time remaining | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Apply changes to skill queue | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Skill training time | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click add skill to queue from Skills Window in Character Window | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Certificate Awarding | class="working" |{{Progress bar|50|text=''}} ||You can claim certificates but it will not promopt you that you have a certificate waiting to be claimed. |} == NPC Station Services == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - In-station Guests List | class="working" |{{Progress bar|90|text=''}} ||Working, with bugs |- | - Can repackage ships/items | class="working" |{{Progress bar|0|text=''}} ||BROKEN - Needs investigation into existing code |- | - Can assemble ships from packaged state | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can leave/make active ships | class="working" |{{Progress bar|90|text=''}} ||Need more Testing, leaving ship in station is broken |- | - Can initiate and finalize trades of items/ships | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Repair Services | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Insurance Services | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Medical Services | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Clone upgrade | class="working" |{{Progress bar|100|text=''}} ||WORKING |- | - Clone transfer | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Jump clone installation | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Items window | class="working" |{{Progress bar|100|text=''}} ||Working |- | - Can merge items | class="working" |{{Progress bar|100|text=''}} ||Working |- | - Can trash/split/trade items | class="working" |{{Progress bar|60|text=''}} ||Partially Working - Trade NOT IMPLEMENTED |- | - Can open/close containers | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can move items into/out of containers | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can inject skills from items | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Agents Tab | class="working" |{{Progress bar|50|text=''}} ||Testing needed |- | - Can initiate conversation with station agent | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Character Interaction Menus == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Right-click Menu in Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click Menu in Chats other than Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Right-click Menu in Station | class="working" |{{Progress bar|100|text=''}} ||Done |} == Chats - Local Corp Custom Private == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Characters show up in Local | class="working" |{{Progress bar|100|text=''}} ||Kinda Working, need testing, character names do not get updated to subsequent clients logging into the system after the first |- | - Chat in Local | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Characters show up in Corp | class="working" |{{Progress bar|90|text=''}} ||character names do not get updated for subsequent character logins |- | - Chat in Corp | class="working" |{{Progress bar|90|text=''}} || character names do not get updated for subsequent character logins |- | - Initiate Private Conversation Chat | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Create Private Chat Channels | class="working" |{{Progress bar|70|text=''}} ||Working, need testing, password checks and moderators NON-FUNCTIONAL |- | - Joining Created Private Chat Channels | class="working" |{{Progress bar|90|text=''}} ||working, need testing |- | - Chat in Private Chat Channels | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Load Subscribed Public and Private Chat Channels Upon Login | class="working" |{{Progress bar|95|text=''}} ||Mostly working, one empty-named channel loaded for each character (server attempts to load a channel with ID = characterID) |- | - Configure Private Chat Channels | class="working" |{{Progress bar|60|text=''}} ||Working, but need more work |- | - Leave Chat Channels | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Un-subscribe (leave) from Private Chat Channel | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Character and Corporation Lookup | class="working" |{{Progress bar|100|text=''}} ||Done |} == EvE Mail == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can Send Eve-mails | class="working" |{{Progress bar|50|text=''}} ||Broken |- | - Can Receive Eve-mails | class="working" |{{Progress bar|0|text=''}} ||Unknown |- | - Can View Eve-mails | class="working" |{{Progress bar|40|text=''}} ||Broken (unable to load mailbox) |- | - Can Reply-to Eve-mails | class="working" |{{Progress bar|50|text=''}} ||Unknown |- | - Can Send Eve-mails to Groups (like Corp) | class="working" |{{Progress bar|0|text=''}} ||Broken |- | - Can Create new Private Mailing Lists | class="working" |{{Progress bar|0|text=''}} ||Need Testing |- | - Newly Created Private Mailing Lists Saved to DB/Restored from DB | class="working" |{{Progress bar|0|text=''}} ||need testing |- | - Can Send/Receive messages in new Private Mailing Lists | class="working" |{{Progress bar|0|text=''}} ||Need testing |} == Module Management == '''Current Status:''' Need SQL Information. {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can drag modules from items to center of Fitting window (auto-insert into slots) | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Can drag modules from items to slots in Fitting window | class="working" |{{Progress bar|90|text=''}} ||Need testing |- | - Can Online/Offline modules in slots in Fitting window | class="working" |{{Progress bar|90|text=''}} ||Working - NOT all modules supported |- | - Can remove modules from slots in Fitting window to either cargo, station item list, or container in space | class="working" |{{Progress bar|90|text=''}} ||Working - NOT all modules supportede |- | - Can add/remove charges to modules slots in Fitting window | class="working" |{{Progress bar|30|text=''}} ||unknown |- | - Can move modules from slot to slot in Fitting window | class="working" |{{Progress bar|70|text=''}} ||Maybe - needs testing |- | - Can Activate modules on ship in space | class="working" |{{Progress bar|0|text=''}} ||NON-FUNCTIONAL |- | - Activated modules on ship in space produce desired effect | class="working" |{{Progress bar|0|text=''}} ||NON-FUNCTIONAL |- | - Can De-activate modules on ship in space | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - De-activated modules on ship in space remove desired effect | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Item Properties Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - View every item's properties | class="working" |{{Progress bar|100|text=''}} ||Done |- | - View every item's picture (orange eye button) | class="working" |{{Progress bar|90|text=''}} ||Need testing |} == Market Window - Buy Orders - Sell Orders == === Sell Order === {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Sell Order | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Placing Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Cancelling Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Modify Sell Orders | class="working" |{{Progress bar|100|text=''}} ||Done |} === Buy Order === {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Buy Orders | class="working" |{{Progress bar|0|text=''}} ||Unknown |} == Assets Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - All Assets View | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED, confirmed (bastrian) |- | - View Assets by Region | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Constellation | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Solar System | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Assets by Station | class="working" |{{Progress bar|90|text=''}} ||Need testing |- | - Search Assets | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |} == Wallet Window == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - View Journal Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Shares Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - View Orders Entries | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |- | - View Transactions Entries | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Contracts == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Start Page | class="working" |{{Progress bar|50|text=''}} ||Partially Working |- | - Create Contracts | class="working" |{{Progress bar|40|text=''}} ||Partially Working |- | - Get contract info | class="working" |{{Progress bar|80|text=''}} ||Partially Working |- | - List our actual contracts | class="working" |{{Progress bar|60|text=''}} ||NOT IMPLEMENTED |- | - List available contracts | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Delete contracts | class="working" |{{Progress bar|100|text=''}} ||Done |} == Map System == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can search Solar Systems | class="working" |? ||NON-Functional, missing Service call (Requires re-checking) |- | - Can plot routes by searching systems and adding waypoints | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |} == Ship Management in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Interaction with POS modules | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can store/retrieve ships from Ship Maintenance Arrays | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can store/retrieve items from Corporate Hangar Arrays | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Anchor POS modules with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Online/Offline POS modules with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Add/Remove Fuel for Control Tower with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Add/Remove? Charges for Defensive Batteries with appropriate roles set | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can Jettison items into space (make Jet-cans) | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can open Jet-cans and Add/Remove items within them | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can open Containers in space (anchored and unanchored) and Add/Remove items within them | class="working" |{{Progress bar|0|text=''}} ||unknown |- | - Can eject from ships in space to appear in pod | class="working" |{{Progress bar|70|text=''}} ||Partially working |- | - Ships ejected from stay in space | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Can enter ships in space from pod | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Can name your ship whatever you want | class="working" |{{Progress bar|100|text=''}} ||Done |} == Ship Navigation in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Warp-in from distant random location on LOGIN | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Warp-out to distant random location on LOGOFF | class="working" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Warp to celestial object off-grid (a.k.a. Warp-in bug) | class="working" |{{Progress bar|65|text=''}} ||Working better, still hacky |- | - Warp to ship or other object on-grid | class="working" |{{Progress bar|65|text=''}} ||Working better, still hacky |- | - Jumping Stargates | class="working" |{{Progress bar|90|text=''}} ||Mostly perfect, infrequent server stalls for minutes are reported |- | - Right-click -> Approach, then Log Off | class="working" |{{Progress bar|0|text=''}} ||Working |- | - Right-click -> Approach | class="working" |{{Progress bar|90|text=''}} ||Working |- | - Approaching Objects | class="working" |{{Progress bar|90|text=''}} ||Working |- | - Entering Stations | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Exiting Stations | class="working" |{{Progress bar|90|text=''}} ||Working, need testing |- | - Autopilot correctly controls ship course, warping to gates, approach to 0m on gate, and jumping to follow planned jump route waypoints. | class="working" |{{Progress bar|90|text=''}} ||Mostly working, need testing |- | - Bookmark system | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmarks loaded from database at character login | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmark a location in space | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Bookmark a station, planet, moon, stargate | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Delete Bookmarks | class="working" |{{Progress bar|90|text=''}} ||Mostly Implemented - BROKEN in move to Crucible |- | - Update a Bookmark | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |- | - Copy/move Bookmark(s) to Ship Cargo | class="working" |{{Progress bar|90|text=''}} ||NOT IMPLEMENTED |} == Ship Combat in Space == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can target and lock a ship using overview | class="working" |{{Progress bar|80|text=''}} ||Working, you get Insta-Lock, but progress bar moves as expected |- | - Can activate modules on target-locked ship and modules take effect on target | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Drones | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Launch Drones | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Engage Enemy / Roid | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recall to orbit | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recall To Bay | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Fleet Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Can form fleets with other characters | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Fleet chat window | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Fleet management window | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Set fleet/wing/squad commanders | class="broken" |0% ||NOT IMPLEMENTED |- | - Set fleet/wing/squad boosters | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Set fleet/wing/squad bosses | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Broadcast fleet notifications | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Overview Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Selected Item Window | class="working" |{{Progress bar|100|text=''}} ||Done |} == Corporation Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Create a corporation | class="working" |{{Progress bar|100|text=''}} ||Done |- | - Manage Roles | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Corp Hangers and divisions | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Corp Wallet | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Renting Office | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Declairing War | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |- | - Recruiting | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Alliance Management == {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Creating Alliance | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Player Owned Station (POS) Deployment and Management == Server log indicates it is unwilling to "spawn" structure-type celestial objects (problems with Celestial object spawning system need to be resolved before this can be fixed) {| style="border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;" class="statusTable" border="1" width="100%" | width="60&" |Service/Something | width="19%" |Status | width="26%" |Comments |- | - Deploying Station Structures | class="broken" |{{Progress bar|0|text=''}} ||NOT IMPLEMENTED |} == Outpost Construction and Management == == EvE Server API == [[Category:Crucible]] b7bdfcb95d168cfdf03001215609f3093cf0cc0d Category Module Manager.html 0 154 197 2021-04-04T01:20:36Z DarksHeiress 7 Created page with "= <span id="Introduction" class="mw-headline"> Introduction </span> = This page is for how modules interact with the server. It is not about creating new modules/items, thoug..." wikitext text/x-wiki = <span id="Introduction" class="mw-headline"> Introduction </span> = This page is for how modules interact with the server. It is not about creating new modules/items, though it may help depending on how creative at coding you are. Luck and I brainstormed for quite a while on this redesign of the ModuleManager and its associated classes. [[ModuleManager_Conversations_with_Luck.html|This article]] contains conversations I've had with Luck on the subject for some deep background on this topic. The Module Manager is probably the most important aspect of the entire EVE game since it is what makes ships useful to do things such as combat, support, transportation, and mining. Without the ability to fit modules to a ship and have them do things, the game is pretty much useless. The Module Manager has many classes contained inside and are used for a great many things, so we will begin with a few critical classes and drill deeper as we go. Notable sections to take a look at in this large article are the [[#Important_Classes|Important Classes]] section describing each of the Module Manager's critical classes and the [[#Connecting_the_Missing_Links|Connecting the Missing Links]] section describing how we connect Module Effects to the attributes on the module used to modify ship/charge/target attributes and how we connect Ship/Implant/Skill bonus modifiers to item attributes used to modify ship/charge/module/target attributes. ----- = <span id="Important_Classes" class="mw-headline"> Important Classes </span> = * [[#Module_Manager|Module Manager]] - the heart of it all: its methods are called by the [http://wiki.evemu.dev/index.php?title=Ship_class&action=edit&redlink=1 Ship class] and owns and maintains all banks of modules installed on a ship * [[#Module_Container|Module Container]] - a container class containing separate container structures for each module bank, rig bank, and subsystem bank on a single ship * [[#Modifier|Modifier]] - * [[#ModifierMap|ModifierMap]] - * [[#MEffect|MEffect]] - * [[#DGM_Effects_Table|DGM_Effects_Table]] - * [[#ModuleEffects|ModuleEffects]] - * [[#GenericModule|GenericModule]] - * [[#Module_Classes|Module Classes]] - * [[#Module_Components|Module Components]] - == <span id="Module_Manager" class="mw-headline"> Module Manager </span> == TBD === <span id="Effect_and_Bonus_Modifier_Calculation_Types" class="mw-headline"> Effect and Bonus Modifier Calculation Types </span> === '''NOTE: THIS TABLE DATA WAS PULLED FROM THE ''EVEHQ'' APPLICATION SOURCE CODE EveHQ.HQF\Classes\Fitting.vb SOURCE FILE. SEE THAT FILE FOR THE SOURCE OF THE TABLE SHOWN HERE''' {| |+ Effect and Bonus Modifier Calculation Types - source: src/eve-server/ship/modules/ModuleDefs.h: enum EVECalculationTypes ! Calculation Name ! Enum Name ! Enum Code ! Description |- |  ? |  ? |  ? |  ? |} '''NOTE: THIS TABLE IS BEING DEPRECATED IN FAVOR OF THE CALCULATION TYPES, FORMULAS, AND CODES PULLED FROM THE ''EVEHQ'' APPLICATION FOUND IN THAT PROJECT'S EveHQ.HQF\Classes\Fitting.vb FILE. SEE THAT FILE FOR THE SOURCE OF THE TABLE ABOVE.''' {| |+ Effect and Bonus Modifier Calculation Types - source: src/eve-server/ship/modules/ModuleDefs.h: enum EVECalculationTypes ! DEPRECATED ! Calculation Name ! Enum Name ! Enum Code ! Description |- | '''DEPRECATED''' | NONE | CALC_NONE | 2000 | This is the default NONE calculation, only use this for effects that require NO calculation to modify any attributes. |- | '''DEPRECATED''' | AUTO | CALC_AUTO | 2001 | This is the code used to direct the Effects Processor to pick the calculation formula automatically, also DO NOT USE THIS! |- | '''DEPRECATED''' | Add | CALC_ADD | 2002 | Add two values |- | '''DEPRECATED''' | Subtract | CALC_SUBTRACT | 2003 | Subtract second value from the first |- | '''DEPRECATED''' | Divide | CALC_DIVIDE | 2004 | Divide the first value by the second value |- | '''DEPRECATED''' | Multiply | CALC_MULTIPLY | 2005 | Multiply first value with the second value |- | '''DEPRECATED''' | Add Percent | CALC_ADD_PERCENT | 2006 | (val1 + (val1 * val2)) |- | '''DEPRECATED''' | Reverse Add Percent | CALC_REV_ADD_PERCENT | 2007 | (val1 / (val3 + val2)) |- | '''DEPRECATED''' | Subtract Percent | CALC_SUBTRACT_PERCENT | 2008 | (val1 - (val1 * val2)) |- | '''DEPRECATED''' | Reverse Subtract Percent | CALC_REV_SUBTRACT_PERCENT | 2009 | (val1 / (1 - val2)) |- | '''DEPRECATED''' | Add As Percent | CALC_ADD_AS_PERCENT | 2010 | (val1 + (val1 * (val2 / 100))) |- | '''DEPRECATED''' | Subtract As Percent | CALC_SUBTRACT_AS_PERCENT | 2011 | (val1 / (1 + (val2 / 100))) |- | '''DEPRECATED''' | Modify Percent With Percent | CALC_MODIFY_PERCENT_W_PERCENT | 2012 | (val1 * (1 + (val2 / 100))) - '''same as Add As Percent''' |- | '''DEPRECATED''' | Reverse Modify Percent With Percent | CALC_REV_MODIFY_PERCENT_W_PERCENT | 2013 | (100 * ((val1 / val2) - 1)) |- | '''DEPRECATED''' | Special Handling for Microwarpdrives and Afterburners | CALC_MWD_AB_EQUATION | 2014 | See [[Ship_Combat.html#SPACE_OPERATIONS|see Ship Combat -&gt; Space Operations]] for details on this equation, since it will be implemented in the module class for groupID 46 |- | '''DEPRECATED''' | Special Handling for Electronic Countermeasure modules | CALC_ECM_JAM_EQUATION | 2015 | See [[Module_Effects_Info_and_Actions_Complete_List.html#Electronic_Countermeasure_-_groupID_201|Electronic Countermeasures]] for details on this equation, since it will be implemented in the module class for groupID 201 |- | '''DEPRECATED''' | Reduce By Percent | CALC_REDUCE_BY_PERCENT | 2016 | (val1 * (1 - (val2 / 100)) |- | '''DEPRECATED''' | Reverse Reduce By Percent | CALC_REV_REDUCE_BY_PERCENT | 2017 | (val1 / (1 - (val2 / 100)) |} === <span id="Module_States" class="mw-headline"> Module States </span> === Each Module has a number of states that it moves through and operates in while it is fitted to a ship and the pilot is doing things with the ship. Most modules will either be in the Online state or Offline state, but many will enter into the Active state and even the Overload state. Some modules take charges into them that are either consumed or launched into the environment and those have additional states related to the loading and unloading of those charges. The first table below shows the entire list of module states allowed and what each one means. The second table shows each allowed module state transition, such as Offline to Online. An example of a state transition that would not be allowed would be Offline to Active, because every module MUST go through the Online state before entering the Active state. '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsActions|dgmEffectsActions]] table - '''effectAppliedInState''' field {| |+ Module States - source: src/eve-server/ship/modules/ModuleDefs.h: enum ModuleStates ! State Name ! Enum Code ! Enum Name ! Description |- | Unfitted | 1100 | MOD_UNFITTED |  ? - not sure if we'll even use this state |- | Offline | 1101 | MOD_OFFLINE |  ? |- | Online | 1102 | MOD_ONLINE |  ? |- | Activated | 1103 | MOD_ACTIVATED |  ? |- | Overloaded | 1104 | MOD_OVERLOADED |  ? |- | Deactivating | 1105 | MOD_DEACTIVATING |  ? |} {| |+ Module State Transitions ! Current State ! Next State |- | Unfitted | Offline |- | Offline | Online |- | Online | Activated |- | Online | Overloaded |- | Activated | Deactivating |- | Overloaded | Deactivating |- | Deactivating | Online |- | Online | Offline |- | Offline | Unfitted |} === <span id="Charge_States" class="mw-headline"> Charge States </span> === Each module that can take charges will also have a Charge State associated with it. Actually, all module classes that inherit from the [[#GenericModule|GenericModule]] class will have a private varible for Module State AND one for Charge State, but many modules will not make use of the Charge State simply because they do not take charges. The allowed Charge States and Charge State transitions are shown in the two tables below, respectively. '''USED IN''' - TBD {| |+ Charge States - source: src/eve-server/ship/modules/ModuleDefs.h: enum ChargeStates ! State Name ! Enum Code ! Enum Name ! Description |- | Unloaded | 1200 | MOD_UNLOADED |  ? |- | Loading | 1201 | MOD_LOADING |  ? |- | Reloading | 1202 | MOD_RELOADING |  ? |- | Loaded | 1203 | MOD_LOADED |  ? |} {| |+ Charge State Transitions ! Current State ! Next State |- | Unloaded | Loading |- | Loading | Loaded |- | Unloaded | Reloading |- | Reloading | Loaded |} === <span id="Module_Effect_Applied_Behaviors" class="mw-headline"> Module Effect Applied Behaviors </span> === '''NOTE: THIS FIELD IS DEPRECATED SINCE EVEHQ STATE CODES REPRESENT SINGLE BIT POSITIONS IN A BINARY NUMBER SO THAT A SINGLE STATE CODE FOR AN EFFECT CAN REPRESENT MORE THAN ONE STATE''' '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''effectAppliedBehavior''' field {| |+ Module Effect Applied Behaviors ! Effect Behavior Name ! Enum Code ! Enum Name ! Description |- | Effect Persistent | 1300 | EFFECT_PERSISTENT | means the effect is active AT ALL TIMES; used ONLY for skill, ship, subsystem effects |- | Effect Online | 1301 | EFFECT_ONLINE | means the effect takes effect on the target (see below) upon entering the ONLINE state |- | Effect Active | 1302 | EFFECT_ACTIVE | used only for ACTIVE modules operating in non-Overloaded mode |- | Effect Overload | 1303 | EFFECT_OVERLOAD | used only for ACTIVE modules operating in Overloaded mode |} === <span id="Module_Target_Equipment_Types" class="mw-headline"> Module Target Equipment Types </span> === TODO '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''targetEquipmentType''' field '''ALSO SPECIFY''' target equipment groupIDs using [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''targetGroupIDs''' field as a comma separated list of numbers with NO SPACES all in one string {| |+ Module Target Equipment Types ! Equipment Type Name ! Enum Code ! Enum Name ! Description |- | Module | 1400 | EQUIP_MODULE |  ? |- | Charge | 1401 | EQUIP_CHARGE |  ? |- | This Ship | 1402 | EQUIP_THIS_SHIP |  ? |- | Drone | 1403 | EQUIP_EXTERNAL_SHIP |  ? |- | External Ship's Module | 1404 | EQUIP_EXTERNAL_SHIP_MODULE |  ? |- | External Ship's Charge | 1405 | EQUIP_EXTERNAL_SHIP_CHARGE |  ? |} === <span id="Module_Effect_Applied_To_Target_Types" class="mw-headline"> Module Effect Applied To Target Types </span> === TODO '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''effectAppliedTo''' field {| |+ Module Effect Applied To Target Types ! Target Type Name ! Enum Code ! Enum Name ! Description |- | Self | 1500 | EFFECT_TARGET_SELF | means the target of the effect is the module's own attribute(s) |- | Ship | 1501 | EFFECT_TARGET_SHIP | means the target of the effect is the attribute(s) of the ship to which the module is fitted |- | External Target | 1502 | EFFECT_TARGET_EXTERNAL | means the target of the effect is the attribute(s) of the current target of the ship to which the module is fitted |- | Module on Ship | 1503 | EFFECT_MODULE_ON_SHIP | means a module or modules that are fitted to the current ship, this special case will indicate when the effect is applied to other modules applied to the same ship - the '''dgmEffectsActions''' table fields of '''targetEquipmentType''' and '''targetGroupIDs''' will have additional information for the Module Manager to make use of this effect |- | Module containing Charge | 1504 | EFFECT_LOADED_CHARGE | means that the effect is from a charge loaded into a weapon module so this will affect charges of the specified groupID loaded into any module on the ship |- | Charge loaded into a Module | 1505 | EFFECT_CHARGE | means that the effect acts upon a charge loaded into a weapon module so this will affect charges of the specified groupID loaded into any module on the ship |- | Character that owns the skill | 1506 | EFFECT_CHARACTER | means that the effect acts upon the character's attribute specific to the effect |} ==== <span id="targetGroupIDs" class="mw-headline"> targetGroupIDs </span> ==== You may use these codes to indicate special behaviors other than simply which groups of modules on which apply the effect: {| |+ Module Target Equipment Types ! Special 'targetGroupIDs' Code ! Additional Parameters ! Example ! Description |- | -1 | a comma separated list of attribute IDs | &quot;-1,1211&quot; | Indicates that the Module Manager should apply this effect ONLY to all modules that have one of the listed attribute IDs |- | -5 | a comma separated list of attribute IDs | &quot;-5,1211,1212&quot; | Indicates that the Module Manager should apply this effect ONLY to all modules that have ALL of the listed attribute IDs |- | -10 | a code indicating slot bank to be modified | &quot;-10,1801&quot; | Indicates a slot bank code that is to be modified, primarily used for Tech 3 Strategic Cruiser subsystem module effects that modify the slot configuration. See [[#Module_Power_Levels|Module Power Levels]] for these codes. |- | -15 | a comma separated list of effect IDs | &quot;-15,1615&quot; | Indicates that the Module Manager should apply this effect ONLY to all modules or ships that have one of the listed effectIDs |} === <span id="Module_Effect_Application_Types" class="mw-headline"> Module Effect Application Types </span> === '''NOTE: TO BE REVISED AND REMOVED - MODULE STATE IS ENOUGH TO DETERMINE WHAT THE MODULE APPLICATION TYPE IS, THE THIRD CODE IS UNNECESSARY AS EACH MODULE CLASS WILL KNOW IF IT SHOULD CONSUME SOMETHING OR ACCUMULATE SOMETHING''' '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''effectApplicationType''' field {| |+ Module Effect Application Types ! Effect Application Type Name ! Enum Code ! Enum Name ! Description |- | Maintain Effect in Online State | 1600 | EFFECT_ONLINE_MAINTAIN | applied by PASSIVE or ACTIVE modules where an effect is maintained; means the effect takes effect on the target (see below) upon entering the ONLINE state. It may or may not then be reversed when going out of ONLINE state; this is specified in other fields of the '''dgmEffectsActions''' table, specifically the '''nullifyOnlineEffect''' and '''nullifiedOnlineEffectID''' fields. |- | Maintain Effect in Activated State | 1601 | EFFECT_ACTIVE_MAINTAIN | applied by ACTIVE modules where an effect is maintained; means the effect takes effect on the target (see below) upon entering the ACTIVATE state, then reversed when going out of ACTIVATE state |- | Effect Repeatedly Consumes while in Activated State | 1602 | EFFECT_ACTIVE_ACCUMULATE | applied by ACTIVE modules where an effect is applied cumulatively on each cycle; means the effect takes effect on the target (see below) one extra time when in ACTIVATE state after each CYCLE duration expires |} === <span id="Module_Stacking_Penalty" class="mw-headline"> Module Stacking Penalty </span> === TODO '''USED IN''' - [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table - '''stackingPenaltyApplied''' field {| |+ Stacking Penalty States ! Stacking Penalty State ! Enum Code ! Enum Name ! Description |- | No Stacking Penalty Applied | 1700 | NO_STACKING_PENALTY | No Stacking Penalty applies |- | Stacking Penalty Applies | 1701 | STACKING_PENALTY_APPLIES | Stacking Penalty applies |} === <span id="Module_Power_Levels" class="mw-headline"> Module Power Levels </span> === TODO {| |+ Module Power Levels ! Power Level Name ! Enum Code ! Enum Name ! Description |- | High Power | 1800 | MODULE_BANK_RIG_POWER | High Power module slot bank |- | Medium Power | 1801 | MODULE_BANK_LOW_POWER | Medium Power module slot bank |- | Low Power | 1802 | MODULE_BANK_MEDIUM_POWER | Low Power module slot bank |- | Rig | 1803 | MODULE_BANK_HIGH_POWER | Rig bank |- | Subsystem | 1804 | MODULE_BANK_SUBSYSTEM | Subsystem bank |} == <span id="ModuleContainer" class="mw-headline"> ModuleContainer </span> == TBD == <span id="Modifier" class="mw-headline"> Modifier </span> == TBD == <span id="ModifierMap" class="mw-headline"> ModifierMap </span> == TBD == <span id="MEffect" class="mw-headline"> MEffect </span> == TBD == <span id="DGM_Effects_Table" class="mw-headline"> DGM_Effects_Table </span> == TBD == <span id="ModuleEffects" class="mw-headline"> ModuleEffects </span> == TBD == <span id="GenericModule" class="mw-headline"> GenericModule </span> == TBD == <span id="Module_Classes" class="mw-headline"> Module Classes </span> == * PassiveModule * ActiveModule TBD == <span id="Module_Components" class="mw-headline"> Module Components </span> == TBD ----- = <span id="Analysis_via_EFT_of_Order_of_Effects_and_Bonuses_Application" class="mw-headline"> Analysis via EFT of Order of Effects and Bonuses Application </span> = There are so many ways that changes are made to ship, module, and other items' attributes by other items such as modules, charges, implants, rigs, boosters, subsystems, etc that we need to figure out the order in which they should be applied because it has to matter somehow. To wit, we turn to EFT to find the answers and my discoveries will be recorded here. Empty Maller: Amarr Cruiser skill: 10% bonus to Medium Energy Turret capacitor use per level | 5% bonus to all Armor Resistances per level Resistances: EM 0%/50% | Thermal 20%/35% | Kinetic 40%/25% | Explosive 50%/20% AFTER Amarr Cruiser Level 3 APPLIED: Resistances: EM 0%/57.5% | Thermal 20%/44.8% | Kinetic 40%/36.3% | Explosive 50%/32% <br /> <br /> = <span id="Connecting_the_Missing_Links" class="mw-headline"> Connecting the Missing Links </span> = Nowhere in CCP's static Database dump are the connections or relations that we can find that tie a module's effects to that module's attributes which are then used to modify specific attributes on the module itself or a loaded charge or the ship or even an external target ship or module on that target ship. Nor are there any indications as to by which specific mathematical formulas are those attributes to be applied to the target's attributes. Close inspection of the attributes and effects of the modules added with knowledge of the actual EVE game play and how modules work to affect attributes all show how these connections can be made. The '''dgmEffects''' table contains information on each effect type a module may have assigned to it in the '''dgmTypeEffects''' table, the later being keyed on the item's typeID. The '''dgmAttributes''' table contains information on each attribute type an item type may have assigned to it in the '''dgmTypeAttributes''' table, the later being keyed on the item's typeID. The '''dgmTypeAttributes''' and '''dgmTypeEffects''' tables list which attributes and which effects each module/ship/skill/drone/other item type has assigned to it and what the value of that attribute is. What is missing is the information that describes exactly what calculations are performed for each effect of a module or other item type, which attribute(s) on that item type are used in the calculation, and which attribute(s) on the target item type is affected by the calculation result. The connections are formed using three new tables [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]], [[Category_EVE_Database.html#dgmEffectsActions|dgmEffectsActions]], and [[Category_EVE_Database.html#dgmTypeAttributeModifiers|dgmTypeAttributeModifiers]]. What follows are detailed descriptions of how each table is populated with information from a skill, ship, module, charge, implant, etc so we have the information to make effects and bonus modifiers work properly. == <span id="Adding_Effects_Data_from_a_Module" class="mw-headline"> Adding Effects Data from a Module </span> == In order to add field data to the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables, you really do need to understand how modules' effects make changes to attributes on whatever target it is supposed to affect. An example of this would be that an Active Armor Hardener module when active adds a bonus percentage to a ship's armor resonance attribute. That knowledge will not be replicated here as it is too vast. Your best bet is to play EVE live or hopefully EVEmu works and can demonstrate what modules and other items do. Alternatives are to use EFT or EVEHQ to make ship fittings and discover how character skills, ship bonuses, and modules can affect one another to make a ship fitting do whatever it is you want it to do. To aid you in this endeavor, EVEmu has an [[Category_EVEmu_API_Server.html|API Server]] capable of many of the official API calls, most notably those required to connect EFT and EVEmon to your character on the EVEmu server. See the [[Category_EVEmu_API_Server.html|EVEmu API Server]] article for information on how to use it to make a new API account and then connect it to these out of game EVE tools adapted for use with the EVEmu server. Now, the following procedures assume you are specifying the correct source attribute(s), skill, target attribute(s), and the calculation formula used to make the change on the target attribute(s) of the target item type. As for ship, skill, and implant bonuses, there is more information contained in the list of effects and attributes for these items but knowledge to connect them is still required. These last sets of data are entered into the '''dgmShipBonusModifiers''', '''dgmSkillBonusModifiers''', and '''dgmImplantBonusModifiers''' tables. These procedures will be described by way of example for the Armor Thermic Hardener I fitted to an Amarr Maller cruiser, which gets 5% bonus to all armor resistances per level of the Amarr Cruiser skill. The armor hardener module is an active one, however, it is rather unique in that it not only has effects for the Active state but also for the Online (not active) state. It also has an effect for the Overload Active state. So, given that it has effects for all three critically important Module States (Online, Active, Overload), this module will prove to be a good example on how to insert data into the aforementioned tables in order to make the proper connections between the effects, the source attributes, and the target attributes. ----- === <span id="Implementing_Effects" class="mw-headline"> Implementing Effects </span> === ==== <span id="PART_I_-_Getting_the_Module_Information" class="mw-headline"> PART I - Getting the Module Information </span> ==== First, use [[EVEmu_Control_Panel.html|EVEmu Control Panel]] to connect to your [[Category_EVE_Database.html|EVE Database]] and then move over to the Item/Ship Editor tab and select Category Module, then type &quot;Armor Thermic Hardener&quot; into the Search box and press Search button. Now, in the results window, right-click and hit Edit on the Armor Thermic Hardener I. The new window will show you Info, Attributes, and Effects of this module. You can do this for any item type in the game (just choose a different category and either search or just scroll through the complete list of the items in that category). Now, click on the Effects tab to view this module's effects. You'll see these three effects: * (id = 2084) '''modifyArmorResonancePassivePostPercent''' * (id = 2098) '''modifyActiveArmorResonanceAndNullifyPassiveResonance''' * (id = 3030) '''overloadSelfThermalHardeningBonus''' These three effects are the ones for which we wish to enter data into the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables. Here's how we do that. Note, as stated before, you have to know what these modules DO in the real game to figure out what attributes on the module are used and which formula they are used with, which attributes on the 'target' are affected, and what that 'target' is, whether it's a ship to which the module is fitted, the module itself or it's own charge, or even an external target such as another hostile/friendly ship/drone/station/structure. ==== <span id="PART_II_-_Inserting_Effects_Information_into_dgmEffectsInfo_table" class="mw-headline"> PART II - Inserting Effects Information into dgmEffectsInfo table </span> ==== First, let's enter data for the '''modifyArmorResonancePassivePostPercent'''. This effect is meant to take effect when the module is in the Online state. See [[#Module_States|Module States]] section above for information on the possible state of each module. This effect uses as sources the attributes on this module with IDs of 994, 995, 996, and 997. So, we need to enter 4 rows of data into the '''dgmEffectsInfo''' table. The [[Category_EVE_Database.html#dgmEffectsInfo|dgmEffectsInfo]] table contains the following fields. {| |+ dgmEffectsInfo table Fields ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |} The calculation for this is odd since armor and shield resonances are not like most attribute calculations. Resonances are kind of opposite of EFT Resistances that are in % and the higher the Resistance % the less damage you take from a certain amount of HP on that damage type. Resonances are opposite in that the smaller the number the less damage you take, more like just multiplying the resonance value with the actual damage HP and the result is the real damage applied to your shield or armor. So, essentially, Resistance % = 100% - Resonance %, where the resonance value is a decimal between 0.0 and 100.0 and is a percentage. Now, to use one of those passiveXXXXDamageResistanceBonus values from the Armor Thermic Hardener I, we take the value, for say passiveThermicDamageResistanceBonus, which is -1, because the others are 0 (come on, this IS an Armor THERMIC Hardener I after all...). Take the value of -1, which is resonance as percentage, or -1%, and it gets applied to the current ship's armorThermalDamageResonance, which in the case of the Maller with NO SKILLS on the character has a value of 0.65 or 65%. Keep in mind that if you use EFT to check the Maller with no skills, you'll see the Armor Thermal Resistance value to be 35%, which is simply 100%-resonance%. Please forgive the fact that you cant actually fly the ship like this, but NO skills makes separating out the calculations easier. To apply the -1% resonance to the 65% current resonance value, we first have to add the -1% to 100%, yielding 99% and then multiply that with the 65%, which yields 64.35% for Armor Thermic Resonance. If you now fit the Armor Thermic Hardener I to the Maller in EFT again with NO skills on the character, you'll see the Armor Thermal Resistance increase from 35% (100% - 65%) to 35.7%, which is simply 100% - 64.35% = 35.65% rounded up to 35.7%. This all means you use a formula code for Modify Percent With Percent, so see the [[#Effect_and_Bonus_Modifier_Calculation_Types|Effect and Bonus Modifier Calculation Types]] section for the actual codes for each calculation allowed to be done with an effect or bonus modifier. Finally, the target attribute ID you'll find by inspecting the Maller ship attributes list for armor resonances, in this case the '''armorThermicDamageResonance''' with ID = 270. Now, how did we know to look at the ship's attribute list and not some other &quot;target&quot;? Well, because we know the game mechanics and that the Armor Thermic Hardener I module changes the ship's damage resistance for Thermal damage. By way of example, if this had been an Omnidirectional Tracking Link I module, which gives bonuses to drone optimal range and tracking speed, we would know that the target would be the drones' attributes for tracking speed and optimal range, which are TWO different effects thus requiring two new rows added to the '''dgmEffectsInfo''' table. Finally, back to our Armor Thermic Hardener I example, here are the four rows we add to the '''dgmEffectsInfo''' table to make the linkage between the effectID of 2084 for '''modifyArmorResonancePassivePostPercent''' the source attributes on the module and the target attribute on the ship. {| |+ dgmEffectsInfo table Entries for Armor Thermic Hardener effectID = 2098 ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |- | 2084 | 267 | 994 | 2012 | 2013 |- | 2084 | 268 | 995 | 2012 | 2013 |- | 2084 | 269 | 996 | 2012 | 2013 |- | 2084 | 270 | 997 | 2012 | 2013 |} BOOM, now you've just added effectID 2084 for ALL modules in the Armor Hardener groupID 328. Yep, all 177 of them. Congradulations, but then again I just did that work for you and you watched, hahahahaha. And, actually, we're not done since we've only covered half the story for this effect not to mention that we have to do the same for the other two effectIDs on this module. ==== <span id="PART_III_-_Inserting_Effects_Action_information_into_the_dgmEffectsActions_table" class="mw-headline"> PART III - Inserting Effects Action information into the dgmEffectsActions table </span> ==== '''NOTE: THIS TABLE HAS BEEN REMOVED AND effectAppliedInState FIELD MOVED TO dgmEffectsInfo TABLE TO CONFORM WITH IMPORT FROM EVEHQ Effects.csv RESOURCE FILE. THIS IS LESS EFFICIENT STORAGE BUT MORE CONCISE AND NOT REALLY ALL THAT MUCH EXTRA SPACE IN THE DATABASE FOR A COUPLE THOUSAND EFFECTS. THIS ENTIRE SECTION _MUST_ BE REVISED TO DESCRIBE HOW THE effectAppliedInState NOW COMES FROM THE EVEHQ IMPORT.''' Now that we've defined the ''what'' of this effect in the '''dgmEffectsInfo''' table, the other half of the definition of the effect is to define what ''action'' to take and when to take it. This data goes into the '''dgmEffectsActions''' table. {| |+ dgmEffectsActions table Fields ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |} The '''dgmEffectsActions''' table is used by the Module Manager to manage the operation of a module in its different states. It needs to know in which state or states that a particular effect is to go ''active'' and what actions to take on what target. There will be one row added to this table for each effectID. For our example case of the Armor Thermic Hardener I and the '''modifyArmorResonancePassivePostPercent''' effect that we're still working on, we need to define this table's field data for this effect. The '''effectAppliedInState''' allows us to define which [[#Module_States|Module State]] in which this effect goes '''active'''. In this case, it is Passive Resonance bonus so we will choose the 'Online' state (see [[#Module_States|Module States]] for the correct state code). The '''effectAppliedTo''' allows us to define which type of target this effect is meant to affect, be it itself (the module), the ship to which it's fitted, or some external target. See the [[#Module_Effect_Applied_To_Target_Types|Module Effect Applied To Target Types]] section for the correct code to use in this case where we want to affect the SHIP to which this module is fitted. It is an Armor Hardener and is meant to change attributes of the ship to which it is fitted. The '''effectApplicationType''' lets us define how this effect is applied to the target, be it a maintained level of effect or a cumulative effect. In this case, when this effect is '''active''', it will maintain a new value for the Armor Resonances that it affects while it is in the 'Online' state. The new values will maintain until the state changes out of 'Online', so we chose the Effect Online Maintain code found in the [[#Module_Application_Types|Module Application Types]] section. The '''targetEquipmentType''' field is used to define the typeID of the target being affected by this effect, however, this field is only used for entries that are coupled with entries placed into the '''dgmTypeAttributeModifiers''' so it is left empty, or zero, for Effects Processing. The same is said for the '''targetGroupIDs''' field, but since this one is a text field, we just leave it with empty text: &quot;&quot;. Moving on, we have the '''stackingPenaltyApplied''' field, which is used by the Module Manager to either apply module stacking penalty analysis including this effect or excluding this effect. This module does have stacking penalties applied to it when more than one module has an effect that affects the attributes affected by this effect. See the [[#Module_Stacking_Penalty|Module Stacking Penalty]] section for the correct code to use here. Affect, Effect, too confusing? Go play EVE live. Anyway, go read that last sentence ten more times and I promise you'll get it... I PROMISE. Ok, well if not, too bad, we're moving on anyway since you're such a noob. The '''nullifyOnlineEffect''' field lets us tell the Module Manager that when this effect is ''active'' and the ''active'' state is '''Activated''', that it is to undo any effects applied to the attributes affected by this effect when it was in the '''Online''' state. In this effect's case, it is active in the '''Online''' state, so it does not apply and we leave the value for this field at Zero, or 0. Finally, the '''nullifiedOnlineEffectID''' field lets us tell the Module Manager which of the other effects on this module is the one that needs to be undone when moving from the '''Online''' state to the '''Activated''' state, but again as is the case with this effect, it is active in the '''Online''' state, so we leave this field also at Zero, or 0. These last two fields we will make use of and explain how to set them with the next effect. So, let's take this data and place it into the '''dgmEffectsActions''' table for this effectID as shown here: {| |+ dgmEffectsActions table Entry for Armor Thermic Hardener I effectID = 2084 ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |- | 2084 | 1102 | 1501 | 1600 | 0 | &quot;&quot; | 1701 | 0 | 0 |} ==== <span id="RINSE_and_REPEAT_-_Keep_doing_PART_I_through_PART_III_for_all_effectIDs_on_a_module" class="mw-headline"> RINSE and REPEAT - Keep doing PART I through PART III for all effectIDs on a module </span> ==== The next effect is the '''modifyActiveArmorResonanceAndNullifyPassiveResonance''' which is a bit different than most other effects in that what first must happen before this effect goes active is the Passive Resonance bonus effect '''modifyArmorResonancePassivePostPercent''' effect must be nullified, or removed. Then, this effect can go active. So, just like the previously handled effect, this one also modifies the current ship's damage resonances but using the other set of damage resonance attributes on this module, not the ones with the passive prefix. Again, for each damage type hardener module, only one of these attributes will be non-zero, however, we're going to enter into the '''dgmEffectsInfo''' table rows that correspond to these source attributes. Source attributes are the damage resonance bonuses without the passive prefix on this module, target attributes are same as for the previous effect we took care of, and calculation types are also the same as the previous effect. Putting all that into a table for insertion yields this below: {| |+ dgmEffectsInfo table Entries for Armor Thermic Hardener effectID = 2098 ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |- | 2098 | 267 | 984 | 2012 | 2013 |- | 2098 | 268 | 985 | 2012 | 2013 |- | 2098 | 269 | 986 | 2012 | 2013 |- | 2098 | 270 | 987 | 2012 | 2013 |} Now, to insert data for this effect into the '''dgmEffectsActions''' table, here we're going to note that another effect ('''modifyArmorResonancePassivePostPercent''') is supposed to be reverted before applying this effect. First, this effect is applied in the '''Activated''' state, the effect is applied to the Ship, the application tye is the same as the previous effect: EFFECT_ACTIVE_MAINTAIN, the targetEquipmentType and targetGroupIDs can be left blank, and the stacking penalty applies. Finally, the nollifyOnlineEffect is set to 1, meaning the Online effect of this module is nullified on '''Activated''' state transition. The last field tells which actual effectID on this module to revert when this effect is supposed to go active, so use the previous effect's ID of 2084. {| |+ dgmEffectsActions table Entry for Armor Thermic Hardener I effectID = 2098 ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |- | 2098 | 1103 | 1501 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |} The last effect on the Armor Thermic Hardener I is the '''overloadSelfThermalHardeningBonus''', which has id = 3030. Now, overload effects are going to be a bit different than other more general effects, such as the previous two that we encountered on this module. This effect is specific to THERMAL armor hardeners, so by that logic, and you can verify this by looking up the other damage type hardeners in [[EVEmu_Control_Panel.html|EVEmu Control Panel]], the other damage type hardener modules will have their own overload effects. So, since this example is meant to completely fill out all modules in this group, we will show all four overload effects data rows below as to how you would insert them into the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables. The Armor Thermic Hardener I module as well as its companions for EM, Explosive, and Kinetic damage types will all have their own effects for overloading. They have IDs 3029 (EM), 3031 (Explosive), and 3032 (Kinetic). Although each damage typed hardener module has its own overload effectID, they all make use of the same overload attribute ID: 1208 for '''overloadHardeningBonus''', which for all basic Tech 1 hardeners has a value of 20. This value is 20% bonus to the base attribute that the module offers toward the ship's damage resonance. Since these modules offer 50% bonus to armor damage resonance when the module is in the '''Activated''' module state, then when the module is put into the '''Overloaded''' module state, the 50% bonus will be increased by this 20% overload bonus, so the new damage resistance bonus offered by the module will be (100% + 20%) * (50%) = 60%. Now, this calculates onto the Maller cruiser's Thermal Armor Resistance to increase its base resistance of 35% to 100% - [100% - (35% * (100% - 60%))] = 74% Thermal Armor Resistance. Now, this is a two level calculation and the Module Manager will handle overload bonuses BEFORE applying the module's bonus to the ship or whatever the target object is, so when we enter information into the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables for overload effects, the target will be the MODULE, not the other target that regular effects might have. So, for these overload effects, the data entered into the dgmEffectsInfo table will be as shown below for a '''sourceAttributeID''' of 1208 (the '''overloadHardeningBonus''') the '''targetAttributeID''' will be the module's own damage resistance bonus attribute that corresponds to the module's damage type (EM, Thermic, Kinetic, Explosive), the '''calculationTypeID''' will be Modify Percent As Percent, and ID of 2012 with the reverse ID = 2013. {| |+ dgmEffectsInfo table Entries for Armor Thermic/EM/Explosive/Kinetic Hardener I module group effectIDs = 3029, 3030, 3031, 3032 ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |- | 3029 | 984 | 1208 | 2012 | 2013 |- | 3030 | 987 | 1208 | 2012 | 2013 |- | 3031 | 985 | 1208 | 2012 | 2013 |- | 3032 | 986 | 1208 | 2012 | 2013 |} Adding data to the '''dgmEffectsActions''' table is crucial as well because it makes the final linkage from the attributes that get changed by the module, what module state it is in when the change happens, and if there are any stacking penalties and Online state effects that need to be nullified when this effect goes into... ahem... effect, hehe. So, the table below shows all four damage type overloaded hardener effects, the Overloaded state encoding (1104), the code for target of the effect being the Module not the ship (1500), no targetEquipmentType or targetGroupIDs (0, &quot;&quot;), stacking penalty not applied (1700), and Online effect (2084) nullified. Now, the weird thing about Overloaded effects of modules is that the Activated state effect (because every overloadable module has one) will ALSO be active along with the Overload effect. The [[#ModuleManager|ModuleManager]] will take care of this, but for the purposes of this section, we're only showing how the Overload effects get detailed in the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables so that when the ModuleManager and the Module classes do what they do, they do it correctly based on how the information is encoded into these tables. {| |+ dgmEffectsActions table Entries for Armor Thermic/EM/Explosive/Kinetic Hardener I module group effectIDs = 3029, 3030, 3031, and 3032 ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |- | 3029 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |- | 3030 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |- | 3031 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |- | 3032 | 1104 | 1500 | 1601 | 0 | &quot;&quot; | 1701 | 1 | 2084 |} Finally, we're done with this module and it was a bit of a doosey because it's rather complicated having a passive effect, an active effect (which nullifies the passive one), and an overload effect. Now, that concludes this lesson, but the fun's not over, not by a long shot, so all modules will be scratch-padded in the way of these tables for both the '''dgmEffectsInfo''' and '''dgmEffectsActions''' tables in the article linked here: [[Module_Effects_Info_and_Actions_Complete_List.html|Module Effects Info and Actions Complete List]] ----- === <span id="Implementing_Type_Attribute_Modifiers" class="mw-headline"> Implementing Type Attribute Modifiers </span> === TBD [[Ship_Bonus_Modifiers_Complete_List.html|Ship Bonus Modifiers Complete List]] [[Skill_Bonus_Modifiers_Complete_List.html|Skill Bonus Modifiers Complete List]] [http://wiki.evemu.dev/index.php?title=Implant_Bonus_Modifiers_Complete_List&action=edit&redlink=1 Implant Bonus Modifiers Complete List] <div lang="en" dir="ltr"> <div id="mw-pages"> == Pages in category &quot;Module Manager&quot; == This category contains only the following page. <div class="mw-content-ltr" lang="en" dir="ltr"> === M === * [[Module_Effects_Info_and_Actions_Complete_List.html|Module Effects Info and Actions Complete List]] ad9fbfa07860fe8c4c1ed77e014790065df6be7e Ship Combat.html 0 155 198 2021-04-04T01:22:28Z DarksHeiress 7 Created page with "= <span id="SHIP_AND_OTHER_VESSEL.2FSTRUCTURE_COMBAT_WORK" class="mw-headline"> SHIP AND OTHER VESSEL/STRUCTURE COMBAT WORK </span> = An equation to test LaTeX: <span class=..." wikitext text/x-wiki = <span id="SHIP_AND_OTHER_VESSEL.2FSTRUCTURE_COMBAT_WORK" class="mw-headline"> SHIP AND OTHER VESSEL/STRUCTURE COMBAT WORK </span> = An equation to test LaTeX: <span class="tex2jax_ignore"> &lt;math&gt; \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} &lt;/math&gt; </span> <br /> == <span id="SPACE_OPERATIONS" class="mw-headline"> SPACE OPERATIONS </span> == * Accurate Positioning: since we cannot emulate destiny ship movement calculations exactly we mave have to force a '/syncloc' on every ship object (exclude drones) at some interval of destiny ticks with the first interval counting ticks from the moment the DestinyManager instance for that ship was created * Collisions: we need to implement purely elastic 3D collisions that conserve momentum on both parties involved and ONLY with ships. The collision should calculate a vector of travel along which a GoToDirection() action is forced with a speed calculated from the conservation of momentum. The previous active ship movement should be queued as the collision is detected then on the next tick after the collision's GoToDirection is ordered, thae queued action should immediately resume. At this time, to ensure accurate positioning of both ships involved, issue a '/synloc' on both ships. ** Collision Detection: The only way to detect collisions is to query distance to and radius of every collidable object in the current bubble, on every destiny tick. Then if the result of distance is &lt;= to other object radius plus this ship's radius then a collision is detected. ** Do all this and see how bad the /syncloc results are after a bunch of different collisions at different speeds for both ships. Also, evaluate the increase in load on the cpu by the server. <br /> === <span id="Sources" class="mw-headline"> Sources </span> === * [http://wiki.eveonline.com/en/wiki/Aligning Aligning] * [http://eve.allakhazam.com/wiki/EVE_Guide_Top_Speed_Calculation_Guide Max Velocity] == <span id="TARGETING" class="mw-headline"> TARGETING </span> == * Initiating a Target Lock: Evemu should support the following aspects of targeting: ** Attempt to Lock Target - receive packet, check max targeting distance attribute of ship, and if within that distance to target, proceed to lock target, send target lock packets to aggressor and targeted ship clients ** Unlock Target - when requested by aggressor, this should happen immediately *** Loss of Target Lock **** when a target travels beyond the max targeting range of the aggressor, that target's lock will be lost immediately **** when the aggressor jumps a gate, when the aggressor docks in a station, when the aggressor becomes jammed by another ship, ALL targets' locks will be lost <br /> == <span id="DAMAGE" class="mw-headline"> DAMAGE </span> == * we need to make application of damage to ships, drones, modules, and structures work ** Damage.cpp file holds all the work so far. Should this be separated out to each class' cpp file? *** Adequately document the procedure for applying damage to a target object *** Tracking attributes and sensor attributes must be used to determine the probability that a target is actually hit with a weapon and the weapon and charge attributes must be used to determine how much damage points and which of the four types are actually applied to the target object <br /> == <span id="EFFECTS" class="mw-headline"> EFFECTS </span> == * we need to consider how effects are applied to a target object since no damage is involved in this process, only changes in either ship attributes or ship state (speed, warp ability, cloak, others?) ** we need a message passing mechanism that can pass information on an effect and really a message that contains an array of 1 or more effects that an aggressor ship is applying to a target object *** INFO: **** aggressor shipID **** effectID or pointer to effect class for that effectID **** specific data regarding how said effect applies to target (list of attribute modifiers?) <br /> == <span id="DEATH" class="mw-headline"> DEATH </span> == * we need to make ship, drone, structure explosions work in the client ** when deemed to happen, the item should be destroyed in memory and database along with its inventory but before that is done, the wreck should be spawned and its inventory filled with the randomly selected list of inventory items for the 'loot drop' *** how do we know which wreck ID matches the ship, structure that was destroyed? **** there is no linkage of these typeIDs in the database, so we'll have to create them in our own database table. there are 279 entries in 'invTypes' with 'wreck' in description.. not that bad :/ ** Kill mails: we need to create a system that creates properly formatted kill mails and delivers them to the players and i imagine they are all stored in the database too so they can be retreived via API keys for out-of-game [[Out_of_Game_Player_Tools.html#EVEmu_Killboard|killboards]] * ** Capsule death: when capsule is destroyed, NO wreck is spawned, but a corpse with char's name IS then the character whose capsule was destroyed should be moved into a new clone (and capsule with a noob ship) into the station last selected for medical clone, set clone as grade Alpha *** we need clone station selection AND clone upgrades to be working to support capsule death 49cc67de3004cbad9702795db2546470d9452562 Category NPCs.html 0 156 199 2021-04-04T01:23:59Z DarksHeiress 7 Created page with "= <span id="NPC" class="mw-headline"> NPC </span> = Non-Player Characters are one of the main ways to earn in-game ISK when playing EVE. These are server-controlled ships and..." wikitext text/x-wiki = <span id="NPC" class="mw-headline"> NPC </span> = Non-Player Characters are one of the main ways to earn in-game ISK when playing EVE. These are server-controlled ships and are one of a handful of factions: Guristas, Angel, Drones, Serpentis, Sansha, and Sleepers (feel free to edit if I forgot some). <br /> TODO: I have some notes on this subject I have to add here, but here are my thoughs on initial stuff we need to get working for basic NPC stuff to function: <br /> * NPC class to create a ship and allow its control in space and targeting and combat * NPC AI class to make intelligent and/or scripted decisions on ship movement, targeting, combat, repair, support, and collaboration with other NPC ships in the same grid * NPC bounties: we need to add data to all NPC ships in the [[Category_EVE_Database.html|database]] to specify the bounties of each NPC ship the player will receive when an NPC ship is killed and a system that on a 5-10 minute timer, all NPC kill bounties are queued up, summed, and delivered to the player's wallet -- Bounties are already assigned via the [http://wiki.evemu.dev/index.php?title=Dgmtypeattributes&action=edit&redlink=1 dgmtypeattributes] under attributeID 481 -- Deslona <br /> * NPC Death and Wreck placement: we need to create linkages between NPC ships and their wrecks in some [[Category_EVE_Database.html|database table]] so the server knows which wreck object to spawn when that NPC ship is killed -- This is handled by the [[Invtypestowrecks.html|invtypestowrecks]] table -- For example; typeID 2382 = Guristas Arrogator, creates wreckTypeID 26543 in invtypestowrecks, it would use the entity table x,y,z, system location -- Deslona <br /> * NPC Loot Drop: we need to make some system by which certain parameters like NPC ship value, system security status, region, and random numbers are all used to determine what loot gets dropped into the wreck's container when it is killed -- Security status doesn't effect the loot, but it does effect what will spawn. The same with region. Once a ship is spawned, it should be limited to it's loot tables. A Guristas ship shouldn't drop Ammar loot regardless of where it spawns. -- Deslona = <span id="NPC_Artificial_Intelligence" class="mw-headline"> NPC Artificial Intelligence </span> = NPC AI in EVEmu is implemented as a series of [http://www.lua.org/ Lua] scripts that we create to analyze data from surroundings and then process it in some algorithms to make decisions to fly, target, shoot, warp, dock, jump, etc. <br /> <br /> More to follow ;) <br /> = <span id="NPC_Loot_Drops" class="mw-headline"> [[NPC_Loot_Drops.html|NPC Loot Drops]] </span> = Page to assess how the tables and items should be distributed. = <span id="NPC_Spawns" class="mw-headline"> NPC Spawns </span> = Some notes on how to create NPC spawns in the Database follow. We would like to create a Tab section in [[EVEmu_Control_Panel.html|EVEmu Control Panel]] that would make creating spawn groups and spawn entries much easier and much more quickly. * '''TODO''' - Create new EVEmu Control Panel tab called 'Spawn Creator' that allows admin or user to create their own spawn groups, spawn entries, and spawn bounds for the database. There are four tables used to create spawns in EVEmu: {| ! Table ! Description |- | spawnBounds |  ? |- | spawnGroupEntries |  ? |- | spawnGroups |  ? |- | spawns |  ? |} == <span id="spawnBounds" class="mw-headline"> spawnBounds </span> == In this table goes one record for each physical location of a spawn, such as a coordinate in space or perhaps in the future, EVEmu will support a locationID, such as an asteroid belt, station, or stargate. The '''spawnID''' value directly corresponds to the '''spawnID''' in the '''spawns''' table described below. At this time, it is unknown as to what the '''pointIndex''' refers to. Of course, the '''x,y,z''' values are the absolute position in space relative to the sun (0,0,0) in a solar system in which the spawn will be located. Since records in this table do not contain solar system IDs, one can use a record from this table multiple times, once for as many different solar systems as desired, however, absolute (x,y,z) coordinates only make sense for perhaps one system. == <span id="spawnGroupEntries" class="mw-headline"> spawnGroupEntries </span> == This table contains one record for each different type of NPC ship that is spawned for a particular '''spawnGroupID''' that is referenced in the '''spawnGroups''' table and for each entry in the '''spawns''' table. Each record in this table contains the typeID of the NPC ship, the quantity of these ships to be created for this spawn group, and the owner and corporation IDs to assign to these ships. To create a spawn group with multiple ship types, one must create a record in this table for each unique NPC ship typeID in the group. == <span id="spawnGroups" class="mw-headline"> spawnGroups </span> == This table contains one record for each different '''spawnGroup''' whose members are specified in the '''spawnGroupEntries''' table where the records' '''spawnGroupID''' match. Records in this table simply specify the name of each spawn group and the formation they shall conform to when spawned. == <span id="spawns" class="mw-headline"> spawns </span> == This table contains the entire list of spawns all throughout the entire galaxy. One record is created per physical location of a spawn in any solar system, for each solar system, since one must specify the solarSystemID for the spawn record. When creating a spawn record in this table, one must specify a '''spawnID''' that matches one in the '''spawnBounds''' table to specify the physical location in the solar system, a solarSystemID to indicate into which solar system the spawn will appear at the spawnBounds location referenced, the spawnBoundType which is a formation (point, triangle, cube, tetrahedron, etc - see [[#Spawn_Formations|formations]] below), a spawnTimer value in seconds indicating how much time elapses before a spawn occurs, and a minimum and maximum respawn time, both of which are used to randomize how much time elapses before the next spawn occurs. = <span id="Spawn_Formations" class="mw-headline"> Spawn Formations </span> = TBD 0219e3d5f1389fa4e49d92046c0c5bd2bb6cb9ba NPC Loot Drops.html 0 157 200 2021-04-04T01:26:22Z DarksHeiress 7 Created page with "We're attempting to gather as much data, general and specific, that tells us what kinds of modules/charges that NPCs of any faction and class drop when killed. Here's what we'..." wikitext text/x-wiki We're attempting to gather as much data, general and specific, that tells us what kinds of modules/charges that NPCs of any faction and class drop when killed. Here's what we've found so far that we'll eventually turn into tables for our database that will be used by the server to determine what an NPC ship drops when it's killed. We believe it is reasonable to assume the size of modules/charges dropped correspond to the class of NPC ship as shown here: * Frigate AND Destroyers = Small * Cruiser AND Battlecruiser = Medium * Battleship = Large <br /> The following needs to be taken into consideration; Found in dgmattributetypesand dgmattribs; * 248 entityLootValueMin The minimum value of any given unit of loot dropped by this entity. Not the minimum value of all the loot, but of any given item dropped. * 249 entityLootValueMax The maximum value of any loot dropped by this entity. Thats for each unit of any given item of loot, not for the total value of all items of loot dropped. * 250 entityLootCountMin Deprecated. The minimum number of pieces of loot dropped by this entity. * 251 entityLootCountMax The maximum number of pieces of loot dropped by this entity. * 254 minLootCount Minimum loot count that an entity can take from the NPC corp loot resource * 256 maxLootCount Maximum loot count that an entity can take from the NPC corp loot resource * 258 minLootValue Minimum value of each resource the entity is able to take as loot. * 259 maxLootValue Maximum value of each resource the entity is able to take as loot. There is nothing in the core DB that points to these values. == <span id="Tables" class="mw-headline"> Tables </span> == == <span id="Step_1_-_link_the_npctype_to_a_set_of_loot" class="mw-headline">Step 1 - link the npctype to a set of loot</span> == For example; typeID 2382 = Guristas Arrogator, creates wreckTypeID 26543 [[Invtypestowrecks.html|invtypestowrecks]] wreckTypeID 26543 is shared by Guristas Infiltrator, Guristas Saboteur, Guristas Destructor, Guristas Demolisher, Guristas Wrecker, Dire Guristas Despoiler, Dire Guristas Saboteur, Dire Guristas Plunderer, Dire Guristas Wrecker, Dire Guristas Destructor, Dire Guristas Demolisher, Typhoon Fleet Issue, Ammatar Navy Battleship, Tempest Fleet Issue, Machariel, Guristas Arrogator, Guristas Invader, Guristas Imputor,Guristas Despoiler, Guristas Plunderer, Elite Tempest Brutor, Panther, Outlaw Arrogator, Outlaw Imputor, Outlaw Infiltrator, Outlaw Invade, Outlaw Despoiler, Tempest Tribal Issue, Outlaw Saboteur, Outlaw Plunderer, Outlaw Wrecker, Outlaw Destructor, Outlaw Demolisher, Dire Guristas Invader, Dire Guristas Infiltrator, Dire Guristas Imputor, Dire Guristas Arrogator, Vargur. <br /> Some of these ships are player made/operated. Which means that the server would need to determine by the TypeID and not solely by the wreckTypeID. WreckID I think is used more for salvaging than for loot. <br /> Continuing the example; typeID 2382 = Guristas Arrogator <br /> == <span id="Step_2_-_assign_loot_to_the_set." class="mw-headline">Step 2 - assign loot to the set.</span> == We know the guristas use hybrid guns with missiles. They tend to drop shield based technologies as well (amongst other things). They don't drop armor modules, or energy/projectile weapons. A Guristas Arrogator is a frigate so it would drop only small modules. Therefore Each type would require a separate group. In addition there would need to be more groups to take size (small/medium and large modules) <br /> == <span id="Ship_type_-_DB_structure" class="mw-headline">Ship type - DB structure</span> == <div class="floatright"> [[../index5dc9.html?title=Special:Upload&wpDestFile=NPC_Loot_Tables_Design.jpg|400px]] </div> The image at right shows the proposed database table design for NPC Loot. {| ! typeID ! quantity ! Chance ! LootGroupID |- | 2382 | 1 | 0.05 | 1 |- | 2382 | 1 | 0.05 | 2 |- | 2382 | 100 | 0.15 | 3 |- | 2382 | 1 | 0.8 | 4 |- | 24102 | 1 | 0.1 | 4 |} In the third row the quantity is 100, this would be for the 3rd group which would represent some kind of small hybrid ammunition The fourth and firth rows show how different ships would share some fields (trade goods etc.). By handling the tables in this way there would be a maximum of one drop per lootgroupID. (two hybrid guns wouldn't drop from on the same NPC ship, but maybe a missile launcher and a hybrid gun could) == <span id="Loot_Group_-_DB_structure" class="mw-headline">Loot Group - DB structure</span> == {| ! LootGroupID ! typeID |- | 1 | 561 |- | 1 | 7249 |- | 1 | 7251 |- | 3 | 216 |- | 3 | 218 |} LootGroupID 1 would refer to small hybrid guns. LootGroupID 3 refers to small hybrid charges. <br /> == <span id="Regular_NPC_Factions" class="mw-headline"> Regular NPC Factions </span> == '''SPECIFIC''' [http://wiki.evemu.dev/index.php?title=Special:Upload&wpDestFile=NPC_Loot_Drop_Types_By_Faction.txt NPC Loot Drop Types by Faction] '''GENERAL''' {| !width="33%"| Faction !width="33%"| Module/Charge Types/Groups !width="33%"| Notes |- | '''[[Blood_Raiders.html|Blood Raiders]]''' | Nos/Lasers/Neutralizers/ArmorTankMods/ArmorReps | * Amarr-based: lasers and armor tanking |- | '''[http://wiki.evemu.dev/index.php?title=Sansha&action=edit&redlink=1 Sansha]''' | Nos/Lasers/Neutralizers/ArmorTankMods/ArmorReps | * Amarr|Galente-based: lasers, armor tanking, sometimes shields and missiles * should drop missle launchers too but they dont seem to |- | '''[[Guristas.html|Guristas]]''' | Railguns, Missle Launchers, Shield Mods | * Caldari-based: hybrid weapons, missiles and shield tanking |- | '''[[Serpentis.html|Serpentis]]''' | blasters, some railguns, armor tanking mods, | * Caldari|Galente-based: hybrid weapons, armor tanking |- | '''[[Angels.html|Angels]]''' | Armor/Shield Tanking Mods, Projectiles, Missle Launchers | * Galente|Minmatar-based: projectile weapons, missiles, armor and shield tanking |} == <span id="Officer_Loot" class="mw-headline"> Officer Loot </span> == For the rare Officer Spawns, [http://games.chruker.dk/eve_online/default.php Chruker's] site has [http://games.chruker.dk/eve_online/rare_loot_drops.php this information] on what they drop when killed. '''TODO: We should make our own local copy of this data from Chruker's Rare Loot Drops page in case his site goes away.''' == <span id="Deadspace_Drops" class="mw-headline"> Deadspace Drops </span> == * '''Gist = Bs Sized Angel Complex Loot''' * Gist-c Drops from the 7/10 Angels Plex * Gist-b Drops from the 8/10 Angels Plex * Gist-a Doesnt exist no 9/10 * Gist-x Drops From the Angel 10/10 * '''Gistum = Cruiser Sized Angel Complex Loot''' * Gistum-c Doesn't Exist no Angel 4/10 * Gistum-b should drop from the Angel 5/10 but the loot tables are broken * Gistum-a Doesn't Exist no Angel 6/10 * '''Gistii = Frig Sized Angel Complex Loot''' * Gistii-c Doesn't Exist no Angel 1/10 * Gistii-b Should drop from the 2/10 but the loot tables are broken * Gistii-a Drops from the serpentis 3/10(go figure) * '''Cent = Sanshas Complex Loot''' * Centus = Sanshas BS Sized Complex Loot * Centus-c Doesnt exist no 7/10 * Centus-b Doesnt exist no 8/10 * Centus-a Doesnt exist no 9/10 * Centus-x Drops from Sanshas 10/10 * '''Centum = Sanshas Cruiser Sized Complex Loot''' * Centum-c Should drop from 4/10 but doesnt due to broken loot tables * Centum-b Doesnt exist no 5/10 * Centum-a Drops from Sanshas 6/10 * '''Centii = Sanshas Frig Sized Complex Loot''' * Centii-c Should drop from 1/10 but dosent due to broken loot table * Centii-b Doesnt exist no 2/10 * Centii-a Should drop from 3/10 but doesnt due to broken loot table * '''Corp = Blood Raiders Complex Loot''' * Corpus = Blood Raider BS Sized Complex Loot * Corpus loot doesnt exist due to lack of 7/10-10/10 Blood complexes. * '''Corpum = Blood Raider Cruiser Sized Loot''' * Coupum-c Doesnt exist no 4/10 * Corpum-b Doesnt exist no 5/10 * Corpum-a Drops from 6/10 Blood Complex * '''Corpii = Blood Raider Cruiser Sized Loot''' * Corpii loot doesnt exist due to lack of 1/10-3/10 Blood complexes. <br /> * '''Core = Serpentis Complex Loot''' * Core = Serpentis BS Sized Complex Loot * Core-c Doesnt exist no 7/10 * Core-b Doesnt exist no 8/10 * Core-a Doesnt exist no 9/10 * Core-x Drops from Serpentis 10/10 * '''Corelum = Serpentis Cruiser Sized Complex Loot''' * Corelum-c Should drop from Serpentis 4/10 but doesnt due to broken loot table. * Corelum-b Doesnt exist no 5/10 * Corelum-a Doesnt exist no 6/10 * '''Corelli = Serpentis Frig Sized Complex Loot''' * Corelli-c Should drop from Serpentis 1/10 but doesnt due to broken loot table. * Corelli-b Doesnt exist no 2/10 * Corelli-a Should drop from Serpentis 3/10 but that plex drops gistii-a instead. * '''Pith = Guristas Complex Loot''' * Pith = Guristas BS Sized Complex Loot * Pith-c Doesn exist no 7/10 * Pith-b Drops from Guristas 8/10 * Pith-a Doesnt Exist no 9/10 * Pith-x Doesnt Exist no 10/10 * '''Pithum = Guristas Cruiser Sized Complex Loot''' * Pithum-c Should drop from 4/10 but doesnt due to broken loot tables. * Pithum-b Doesnt exist no 5/10 * Pithum-a Should drop from 6/10 but doesnt due to broken loot tables. <br /> == <span id="Notes_and_links" class="mw-headline"> Notes and links </span> == This is a collection of links and notes for future reference on how CCP may effect the loot tables. [http://www.reddit.com/r/Eve/comments/1fl8xk/patch_notes_patch_notes_for_odyssey_ccp_falcon/ Reddit site 1] * Loot from the profession container is distributed using the scattering mechanic. * Introduction of new items on the loot table, such as capital rigs and faction tower BPCs. [http://www.twius.net/patch-notes/eve-online-patch-notes.html Twinstar] * COSMOS containers are refilled correctly with loot again. * The loot scattering mechanic has been completely removed from all sites that contained that functionality. * Exploration loot tables have been adjusted to compensate for the loot scattering removal. [http://www.ogrank.com/content/view/541/33 Ogrank] * Missing “named drops” ECM modules from NPC’s have been added to loot tables [http://forum.eve-online.ru/showthread.php?t=2302 Eveonline.ru] * Loot tables will also get some anti-nerf lovin', among the tweaks are removing mediocre or non-sensical loot, like small shield boosters and basic damage controls from battleships, and increased drop rate of named modules from the elite ships. * Sansha’s Nation - Will be getting more missile firing + faction missile launchers as loot drop * Loot tables will also get a big attention, among things are removing crap loot like small shield boosters and basic damage controls from battleships, and increased drop rate of named modules from the elite ships. [http://www.battlefield.no/forum/index.php?/topic/90768-eve-online-revelations-2/ battlefield.no] * Empire Navy NPCs now drop loot as well as tags. * Meta versions of the mining upgrade and ice harvester upgrade are now available dropped in loot by certain entities. [http://www.reddit.com/r/Eve/comments/22m5h4/highsec_loot_tables/ Reddit site 2] [https://forums.eveonline.com/default.aspx?g=posts&m=1106977#post1106977 Eve Online Forums] &quot;Pulling all the Meta 0* loot out of PvE drops has been on our to-do list for a while, as it's damaging to both mining and T1 industry. With the changes to rogue drones going in, we're already committing to a mineral supply &quot;shock&quot; in this patch, so we decided when planning this release to roll in the Meta 0 removal at the same time so we only have to go through this process once. Due to the way that the loot tables are set up internally, it's *substantially* easier** to replace loot rather than remove it, so the solution we're going with for now is swapping all the Meta 0 stuff for metal scraps (the 0.01m3 version). Ie, vanilla T1 equipment - your Cap Recharger Is and 1MN Afterburner Is and so on We have a chance of picking from a given loot table, and then ratios for each type within the table. If we just removed the Meta 0 stuff, we'd end up dropping WAY more Meta 1-4, which isn't desirable, and the only way to resolve this is to alter the table pick rates, which are authored on a per-NPC basis, which would mean recalculating and adjusting every NPC in the game. This isn't really viable within the scope of this release, and we don't want to push this change back because it means doing a &quot;double shock&quot; to mineral prices; hence the metal scraps.&quot; 86dfd6abcc01692c1554259fc4724d82e60b50e0 Eve-tool 0 158 207 2021-04-04T01:45:17Z DarksHeiress 7 Created page with "To compile Eve-Tool, you must select it in the Cmake options. EVE Tool is essentially just a collection of small functions to do various things with EVE specific data, with a..." wikitext text/x-wiki To compile Eve-Tool, you must select it in the Cmake options. EVE Tool is essentially just a collection of small functions to do various things with EVE specific data, with a little command line interface. The source code for this tool is included with EVEmu. Current Features: * Um-marshalling MarshalStreams? found in CCP's logserver.exe logs of '''Write''' and '''Read''' packets * Cache file listing and extracting * BLUE file extracting * Win c72ecdd7db173e16c38bb42f8ae617fe2f5e62dd Xmlpktgen 0 159 208 2021-04-04T01:46:08Z DarksHeiress 7 Created page with "== <span id="Description" class="mw-headline"> '''Description''' </span> == XML Packet Generator, abbreviated ''xmlpktgen'', is a tool specifically designed to solve one of t..." wikitext text/x-wiki == <span id="Description" class="mw-headline"> '''Description''' </span> == XML Packet Generator, abbreviated ''xmlpktgen'', is a tool specifically designed to solve one of the problems with Python interaction: its dynamic typing. Using marshaling and unmarshaling, we are able to reproduce any object that a client sends to us; however, there is nothing we can say about these objects at compile time: are these ints? floats? tuples? Thus the objects passed to calls as arguments (for example) must always be examined and their types must be determined in order to be effectively used in C++. We could do this manually; however, it's soon clear that it's nothing but endless code repetition. So we use the xmlpktgen: if we feed it with proper XML destribing the object(s) we wish to decode, it generates .h/.cpp files with classes that do exactly what we need - scan through given object and pull out stuff we need (ints, strings etc.), according to the given XML description. These classes can also handle inverse operation: given the components, they can construct quite complex objects out of them. <br /> == <span id="Current_usage" class="mw-headline"> '''Current usage''' </span> == In the current setup, its headers are in include/xmlpktgen, source is in src/xmlpktgen. After it's built, it's used to generate .h/.cpp files for .xmlp descriptors in src/eve-common/packets. These generated classes are then used throughout the whole eve-common, eve-tool and eve-server source. == <span id="Example_on_a_real_packet" class="mw-headline"> Example on a real packet </span> == The packet is to big to be pasted here so you can access it here: [http://www.levelbelow.net/pastebin/1372/ Packet Example] Let's take this complicated packet as an example on how to create the xmlp code in these situations. First, we look at what we have as a general structure. You start by looking under the [PySubstream] line. There we have a PyString called &quot;CreateCharacterWithDoll&quot; - this is the method that has been called from the client to the server. The client sends information about your character creation results (name, race, gender, bloodline, avatar appearance, picture pose information and schoolID). Under the PyString &quot;CreateCharacterWithDoll&quot; there is a tuple containing 7 items. If you take a close look you can see that the first item it's a string that contains the name of the created character and the rest of the PyInts and PyObjects are the data specified above. The firs thing you want to do is to add a &lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt;, this will define a class named CallCreateCharacterWithDoll that you can later use inside the C++ code. Then you take the first thing under the PySubstream, which is a &lt;tupleInline&gt; and under this you add the elements one by one like this: <span class="tex2jax_ignore"><code> </code></span> <pre>&lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt; &lt;tupleInline&gt; &lt;wstring name = &quot;name&quot; /&gt; &lt;int name = &quot;bloodlineID&quot; /&gt; &lt;int name = &quot;ancestryID&quot; /&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;avatarInfo&quot; /&gt; &lt;/objectInline&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;poseInfo&quot; /&gt; &lt;/objectInline&gt; &lt;int name = &quot;schoolID&quot; /&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; </pre> The name after each type (wstring, int, list) specifies the name of the property that will be generated inside the class CallCreateaCharacterWithDoll, it's like saying &quot;int number&quot; in ordinary C++. First 3 lines were pretty straight forward, a string and 2 ints, but what about the fourth one? Well... here is the tricky part... This is an object which consists of a string and a dict; the string &quot;util.KeyVal&quot; describes the dict format which is: &quot;Key Val&quot; (ex: &quot;gold&quot;:99999) a key, named &quot;gold&quot; for example and it's value 99999 which can be an int, float, list or any object. I've chosen this packet because of it's complexity from which you can learn how to deal with types other than the basic int, float, string. Coming soon: The continuation of the the process on how we go about extracting the data and store it in the Data Base. == <span id="XMLP_Format_Demystified" class="mw-headline"> XMLP Format Demystified </span> == XMLP Structure Using it on the C++ side: <pre>&lt;objectInline&gt; &lt;stringInline value=&quot;util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;int name=&quot;itemID&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;attributes&quot;&gt; &lt;dictInt name=&quot;attributes&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;invItem&quot;&gt; &lt;raw name=&quot;invItem&quot; /&gt; obj.invItem = new PyPackedRow(...) &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;time&quot;&gt; &lt;/dictInlineEntry&gt; &lt;int name=&quot;time&quot; /&gt; &lt;dictInlineEntry key=&quot;activeEffects&quot;&gt; &lt;dictInt name=&quot;activeEffects&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> example for including an entire xmlp structure into another: <pre>&lt;objectInline&gt; &lt;stringInline value=util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> <br /> === <span id="Tags_and_their_uses" class="mw-headline"> Tags and their uses </span> === A full list of xmlp tags can be found in Generator.h/.cpp in the &quot;xmlpktgen&quot; project. Use &lt;&gt; not [] wiki formating is evil. '''[elementDef] [/elementDef]''' the outermost wrapper tag around an entire XMLP structure, close with '''[element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /]''' you supply the actual object (not just a pointer) to the util_Rowset '''[elementPtr type=&quot;OnLSC_SenderInfo&quot; name=&quot;sender&quot; /]''' you supply a pointer to the OnLSC_SenderInfo class object instance '''[raw name=&quot;raw_name&quot; /]''' you put a new PyRep * object here, which can be any PyXXXX class pointer '''[objectEx name=&quot;name&quot; type=&quot;a type&quot; optional=&quot;true/false&quot;] [/objectEx]''' specifies a PyObjectEx object, Type it's like util.KeyVal object type and can be left out, Optional asks if it's type 2 or not '''[objectInline]''' specifies a PyObject object, closed by [/objectInline] '''[substreamInline] marshalling/unmarshalling [/substreamInline]''' specifies a PySubStream object - this is used by lower level '''[none /]''' specifies a PyNone object '''[dictInline] [/dictInline]''' wrap a dictionary in this and its closing tag '''[dictInlineEntry key=&quot;dict_key_string&quot;]''' this defines an expected dictionary key value as a string &quot;dict_key_string&quot;, used inside [dictinline] you then need to specify on the next line a value part of this dictionary key-value pair eg: <pre>&lt;dictInlineEntry key=&quot;key_string&quot;&gt; &lt;int name=&quot;int_name&quot; /&gt; &lt;/dictInlineEntry&gt;</pre> '''[dict name=&quot;dict_name&quot; /]''' defines a whole dictionary object of type PyDict '''[dictInt name=&quot;dict_int_name&quot; /]''' defines a whole dictionary with integers used for ALL key values '''[dictStr name=&quot;dict_string_name&quot; /]''' defines a whole dictionary with strings used for ALL key values '''[dictRaw name=&quot;dict_raw_name&quot; key=&quot;key_Ctype&quot; pykey=&quot;key_Ptype&quot; value=&quot;val_Ctype&quot; pyvalue=&quot;val_Ptype&quot; /]''' defines a whole dictionary with &quot;key_Ctype&quot; of a C/C++ type such as uint32 as keys, with the Python type specified type specified by &quot;key_Ptype&quot;, the value C/C++ type specified by &quot;val_Ctype&quot;, and the Python type specified by &quot;val_Ptype&quot; '''[stringInline value=&quot;string_value&quot; /]''' specifies a constant PyString value that contains the string &quot;string_value&quot; '''[tokenInline]''' specifies a PyToken '''[tupleInline]''' wrap a tuple (list of items) in this and its closing tag &lt;/tupleInline&gt; '''[tuple name=&quot;tuple_name&quot; /]''' specifies a tuple object of type PyTuple '''[listInline]''' wrap a list (list of items) in this and its closing tag &lt;/listInline&gt; ['''list name=&quot;list_name&quot; /]''' specifies a list of objects with the name &quot;list_name&quot; '''[listInt name=&quot;list_int_name&quot; /]''' specifies a list of PyInt objects with the name &quot;list_int_name&quot; '''[listStr name=&quot;list_string_name&quot; /]''' specifies a list of PyString objects with the name &quot;list_string_name&quot;; no explicit '''[string name=&quot;string_name&quot; /]''' simple object type PyString with the name &quot;string_name&quot; '''[wstring name=&quot;wstring_name&quot; /]''' simple object type PyWString with the name &quot;wstring_name&quot; '''[real name=&quot;real_name&quot; /]''' simple object type PyFloat with the name &quot;real_name&quot; '''[int name=&quot;int_name&quot; /]''' simple object type PyInt with the name &quot;int_name&quot; '''[long name=&quot;long_name&quot; /]''' simple object type PyLong with the name &quot;long_name&quot; '''[bool name=&quot;bool_name&quot; /]''' simple object type PyBool with the name &quot;bool_name&quot; 8c66d872a62b628a123b868b764bf3c6a0d03599 The EVEmu Guide 0 160 209 2021-04-04T01:47:14Z DarksHeiress 7 Created page with "== <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu soluti..." wikitext text/x-wiki == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool.html|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[XML_Packet_Generator.html|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Eve-xmlpktgen.html|eve-xmlpktgen]]''' </span> == The XML Packet Generator (eve-xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''[[Category_EVEmu_Tools.html|EVEmu Server Support Tools]]''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what your doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development, but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool.html|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. 69129673cee9273c5b0176c1031784aa72bba393 210 209 2021-04-04T01:48:35Z DarksHeiress 7 wikitext text/x-wiki == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool.html|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[Xmlpktgen.html|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Eve-xmlpktgen.html|eve-xmlpktgen]]''' </span> == The XML Packet Generator (eve-xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''[[Category_EVEmu_Tools.html|EVEmu Server Support Tools]]''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what your doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development, but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool.html|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. 6c1ac744c0cadbb39cb605a39da01bd1b3ac7e73 211 210 2021-04-04T01:48:55Z DarksHeiress 7 wikitext text/x-wiki == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool.html|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[Xmlpktgen|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Eve-xmlpktgen.html|eve-xmlpktgen]]''' </span> == The XML Packet Generator (eve-xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''[[Category_EVEmu_Tools.html|EVEmu Server Support Tools]]''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what your doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development, but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool.html|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. b79ac01e856fc2a54425abeed507e38dce10c31f Eve-common.html 0 161 212 2021-04-04T01:50:12Z DarksHeiress 7 Created page with "The eve-common project handles these major pieces of the EVEmu server: * [[Object_caching.html|Object caching]] * MySQL Database Query Result Formation? * Client Connection S..." wikitext text/x-wiki The eve-common project handles these major pieces of the EVEmu server: * [[Object_caching.html|Object caching]] * MySQL Database Query Result Formation? * Client Connection Sessions? * [[Receiving_and_Decoding_Packets_incoming_from_Clients.html|Receiving and Decoding Packets incoming from Clients]] * Encoding and Transmitting Packets outgoing to Clients? * Packet Typecasting? * Various Error Reporting? The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the [[Category_The_EVEmu_Guide.html|The EVEmu Guide]] main article, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. Before that can be done, the information that the client has sent has to be decoded, as the client sends the service data in the form of objects. The server is coded in C++, which is an Object Oriented language and you *MUST* think in that manner in able to code efficiently. Essentially the objects are structures that contain all the data necessary and follow a pre-determined organizational hierarchy. As we understand this hierarchy, we are able to successfully decode the information packets that the client sends us, and do what we're supposed to with them. In this regard, EVEmu's implementation of EVE Online's received and transmitted packets are static, in that all packets' structures are pre-determined and stored in XMLP files using XML formatting. See the [[XML_Packet_Generator.html|XML Packet Generator]] article for more information on specific packets and how the xmlp files are formatted. The eve-common project handles all of those decoding functions, along with many others. Every time you see something like '''args.Decode()''', what is really happening is that a variable named args is being declared as some class from the eve-common project. For instance, CallJoinArgs? is a class that is contained in eve-common. It handles the decoding and encoding of all packets necessary to join a channel in the chat. Basically it knows how the data for that call is formatted, and pulls out specific things, and sets variables from that information so that we can work with it. As you can imagine, being able to decode all of the data structures of any call that the client can make to the server requires a LOT of code, which is why we have the [[Xmlpktgen|XML Packet Generator]] project. 563a038d1620a1bbfabedc69321f9c447236194e 213 212 2021-04-04T01:50:32Z DarksHeiress 7 wikitext text/x-wiki The eve-common project handles these major pieces of the EVEmu server: * [[Object_caching.html|Object caching]] * MySQL Database Query Result Formation? * Client Connection Sessions? * [[Receiving_and_Decoding_Packets_incoming_from_Clients.html|Receiving and Decoding Packets incoming from Clients]] * Encoding and Transmitting Packets outgoing to Clients? * Packet Typecasting? * Various Error Reporting? The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the [[Category_The_EVEmu_Guide.html|The EVEmu Guide]] main article, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. Before that can be done, the information that the client has sent has to be decoded, as the client sends the service data in the form of objects. The server is coded in C++, which is an Object-Oriented language and you *MUST* think in that manner in able to code efficiently. Essentially the objects are structures that contain all the data necessary and follow a pre-determined organizational hierarchy. As we understand this hierarchy, we are able to successfully decode the information packets that the client sends us, and do what we're supposed to with them. In this regard, EVEmu's implementation of EVE Online's received and transmitted packets are static, in that all packets' structures are pre-determined and stored in XMLP files using XML formatting. See the [[Xmlpktgen|XML Packet Generator]] article for more information on specific packets and how the xmlp files are formatted. The eve-common project handles all of those decoding functions, along with many others. Every time you see something like '''args.Decode()''', what is really happening is that a variable named args is being declared as some class from the eve-common project. For instance, CallJoinArgs? is a class that is contained in eve-common. It handles the decoding and encoding of all packets necessary to join a channel in the chat. Basically it knows how the data for that call is formatted, and pulls out specific things, and sets variables from that information so that we can work with it. As you can imagine, being able to decode all of the data structures of any call that the client can make to the server requires a LOT of code, which is why we have the [[Xmlpktgen|XML Packet Generator]] project. d92558132831b9e8c97804473ee54f3896ca1d87 214 213 2021-04-04T01:51:06Z DarksHeiress 7 wikitext text/x-wiki The eve-common project handles these major pieces of the EVEmu server: * [[Object_caching.html|Object caching]] * MySQL Database Query Result Formation? * Client Connection Sessions? * [[Receiving_and_Decoding_Packets_incoming_from_Clients.html|Receiving and Decoding Packets incoming from Clients]] * Encoding and Transmitting Packets outgoing to Clients? * Packet Typecasting? * Various Error Reporting? The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the [[Category_The_EVEmu_Guide|The EVEmu Guide]] main article, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. Before that can be done, the information that the client has sent has to be decoded, as the client sends the service data in the form of objects. The server is coded in C++, which is an Object-Oriented language and you *MUST* think in that manner in able to code efficiently. Essentially the objects are structures that contain all the data necessary and follow a pre-determined organizational hierarchy. As we understand this hierarchy, we are able to successfully decode the information packets that the client sends us, and do what we're supposed to with them. In this regard, EVEmu's implementation of EVE Online's received and transmitted packets are static, in that all packets' structures are pre-determined and stored in XMLP files using XML formatting. See the [[Xmlpktgen|XML Packet Generator]] article for more information on specific packets and how the xmlp files are formatted. The eve-common project handles all of those decoding functions, along with many others. Every time you see something like '''args.Decode()''', what is really happening is that a variable named args is being declared as some class from the eve-common project. For instance, CallJoinArgs? is a class that is contained in eve-common. It handles the decoding and encoding of all packets necessary to join a channel in the chat. Basically it knows how the data for that call is formatted, and pulls out specific things, and sets variables from that information so that we can work with it. As you can imagine, being able to decode all of the data structures of any call that the client can make to the server requires a LOT of code, which is why we have the [[Xmlpktgen|XML Packet Generator]] project. 63b070fddb5c8e45b6538ef729ab26a21cce78fb 215 214 2021-04-04T01:52:09Z DarksHeiress 7 wikitext text/x-wiki The eve-common project handles these major pieces of the EVEmu server: * [[Object_caching.html|Object caching]] * MySQL Database Query Result Formation? * Client Connection Sessions? * [[Receiving_and_Decoding_Packets_incoming_from_Clients.html|Receiving and Decoding Packets incoming from Clients]] * Encoding and Transmitting Packets outgoing to Clients? * Packet Typecasting? * Various Error Reporting? The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the [[Category:The_EVEmu_Guide|The EVEmu Guide]] main article, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. Before that can be done, the information that the client has sent has to be decoded, as the client sends the service data in the form of objects. The server is coded in C++, which is an Object-Oriented language and you *MUST* think in that manner in able to code efficiently. Essentially the objects are structures that contain all the data necessary and follow a pre-determined organizational hierarchy. As we understand this hierarchy, we are able to successfully decode the information packets that the client sends us, and do what we're supposed to with them. In this regard, EVEmu's implementation of EVE Online's received and transmitted packets are static, in that all packets' structures are pre-determined and stored in XMLP files using XML formatting. See the [[Xmlpktgen|XML Packet Generator]] article for more information on specific packets and how the xmlp files are formatted. The eve-common project handles all of those decoding functions, along with many others. Every time you see something like '''args.Decode()''', what is really happening is that a variable named args is being declared as some class from the eve-common project. For instance, CallJoinArgs? is a class that is contained in eve-common. It handles the decoding and encoding of all packets necessary to join a channel in the chat. Basically it knows how the data for that call is formatted, and pulls out specific things, and sets variables from that information so that we can work with it. As you can imagine, being able to decode all of the data structures of any call that the client can make to the server requires a LOT of code, which is why we have the [[Xmlpktgen|XML Packet Generator]] project. 570cff2449c857827cc7c786965160a45cd53d64 216 215 2021-04-04T01:53:14Z DarksHeiress 7 wikitext text/x-wiki The eve-common project handles these major pieces of the EVEmu server: * [[Object_caching.html|Object caching]] * MySQL Database Query Result Formation? * Client Connection Sessions? * [[Receiving_and_Decoding_Packets_incoming_from_Clients.html|Receiving and Decoding Packets incoming from Clients]] * Encoding and Transmitting Packets outgoing to Clients? * Packet Typecasting? * Various Error Reporting? The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the [[The_EVEmu_Guide|The EVEmu Guide]] main article, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. Before that can be done, the information that the client has sent has to be decoded, as the client sends the service data in the form of objects. The server is coded in C++, which is an Object-Oriented language and you *MUST* think in that manner in able to code efficiently. Essentially the objects are structures that contain all the data necessary and follow a pre-determined organizational hierarchy. As we understand this hierarchy, we are able to successfully decode the information packets that the client sends us, and do what we're supposed to with them. In this regard, EVEmu's implementation of EVE Online's received and transmitted packets are static, in that all packets' structures are pre-determined and stored in XMLP files using XML formatting. See the [[Xmlpktgen|XML Packet Generator]] article for more information on specific packets and how the xmlp files are formatted. The eve-common project handles all of those decoding functions, along with many others. Every time you see something like '''args.Decode()''', what is really happening is that a variable named args is being declared as some class from the eve-common project. For instance, CallJoinArgs? is a class that is contained in eve-common. It handles the decoding and encoding of all packets necessary to join a channel in the chat. Basically it knows how the data for that call is formatted, and pulls out specific things, and sets variables from that information so that we can work with it. As you can imagine, being able to decode all of the data structures of any call that the client can make to the server requires a LOT of code, which is why we have the [[Xmlpktgen|XML Packet Generator]] project. a8e9efe92bcf7e4b5f3c72f5373a82c02e5241be Object caching.html 0 162 217 2021-04-04T01:53:55Z DarksHeiress 7 Created page with "== <span id="Ideas_on_how_we_can_create_an_In-Memory_Database_using_caching_or_other_methods" class="mw-headline"> '''Ideas on how we can create an In-Memory Database using ca..." wikitext text/x-wiki == <span id="Ideas_on_how_we_can_create_an_In-Memory_Database_using_caching_or_other_methods" class="mw-headline"> '''Ideas on how we can create an In-Memory Database using caching or other methods''' </span> == == <span id="METHOD_1_-_Expand_CacheObjectMgr.3F" class="mw-headline"> '''METHOD 1 - Expand CacheObjectMgr?''' </span> == Maximus: It would have data storage + several basic methods to update cache content - some sort of delete, insert and update methods ( the last one in two forms: one for remove, update, insert methodology and one for update and leave one ). <br /> == <span id="METHOD_2_-_Use_MySQL_Cluster" class="mw-headline"> '''METHOD 2 - Use MySQL Cluster''' </span> == Shane has been working to try to successfully setup the minimum required 3 nodes to get it up and running. This system uses an In-Memory Database with proper backend connection to the disk based DB. bf2450d9a0c3413885d002e7b0cd7489ca44109b Eve-server.html 0 163 218 2021-04-04T01:55:53Z DarksHeiress 7 Created page with "== <span id="EVEmu_eve-server_project" class="mw-headline"> '''EVEmu eve-server project''' </span> == The eve-server is the primary executable. This project contains the actu..." wikitext text/x-wiki == <span id="EVEmu_eve-server_project" class="mw-headline"> '''EVEmu eve-server project''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to write code for it is already in place in the other projects. <br /> == <span id="eve-server.cpp" class="mw-headline"> '''eve-server.cpp''' </span> == This project contains the single most important file in the entire solution: '''eve-server.cpp'''. (it's named &quot;eve-server&quot; for a reason :) ). eve-server.cpp contains the primary loop of the server, which, while the server is running, performs the following tasks: # Initialize logging, read configuration, connect to database # Start API and Image servers # Create various [[#System-Wide_Resources|system-wide resource objects]] # Register all [[#Service_Managers|services]] # Create game memory objects: [http://wiki.evemu.dev/index.php?title=Category:Item_Factory&action=edit&redlink=1 Item Factory], [[Category_Module_Manager.html|Module Manager]] effects &amp; info tables # LOOP: ## Check for incoming packets on the TCP connection ## If there is an incoming packet, decode it ## Make the appropriate response ## Send the response to the client that sent the request ## Scan through entire [http://wiki.evemu.dev/index.php?title=Category:Entity_List&action=edit&redlink=1 Entity List] for any items that need actions taken (modules changed, timers expired, etc) ## Scan through entire list of [[#Service_Managers|services]] to process any actions pending ## Monitor for Ctrl+C server shutdown command # END LOOP # shut down logging, API server, Image server, TCP server # close logfile # Entity List destructor invokes save-off to database of all modified objects That is folks. That's all it does. In fact that's all the entire project does...ever. All of your coding that you will more than likely be doing will be focused solely on number 3. 1, 2, and 4 are pretty much done, and unless you're doing some serious revision of the entire server structure, or just like breaking things, you'll probably never touch them. Fortunately for you, 3 covers an immense amount of code. In fact, it is almost all of the server code. Basically, number 3 is broken into various service managers. Service Managers are discussed later in this article. So that is basically how the eve server in its entirety functions. A call is received from the client, processed by the appropriate service manager/service, and a response is sent. During that time, all manner of things can happen. The general structure of the code is as follow: Service Managers and their associated services are found in code files called SomethingService.cpp or SomethingServiceMgr.cpp. Anything that requests information from the evemu database is found in code files named SomethingDB.cpp. Things just named Something.cpp contain data structures and the actual code behind a service call. What you will usually see is that the service call, like Handle_Add, will have statements to make sure that it can decode the arguments passed to it by the client. Once that is affirmed, the Handle_Something function will usually call a (usually protected) function that actually executes whatever the service is supposed to do. The rest of the stuff are helper functions, such as packet decodes, query formatters and so on. Here is pseudocode of what eve-server.cpp does and what happens inside: <pre>At start-up, print splash info on Copyright, licensing, EvE client version Set current time Load server configuration from local eve-server.xml via eve-server &gt; EVEServerConfig Load server log settings from local log.ini via common? &gt; LogNew Connect to evemu mysql database using info from local eve-server.xml via common? &gt; DBcore Create the DGM Type Attribute Manager via eve-server &gt; dgmtypeattributemgr Start the TCP server via eve-common &gt; EVETCPServer -and- common? &gt; TCPServer Make the Item Factory via eve-server &gt; ItemFactory Create the main Service Manager via eve-server &gt; PyServiceMgr Create the Command Dispatcher object via eve-server &gt; CommandDispatcher Register all commands via eve-server &gt; AllCommands.h Register all services (see the List of Service Managers below for a complete list) via eve-server &gt; PyServiceMgr Cache Database Tables using Object Cache Service via eve-server &gt; ObjCacheService Set Server to ONLINE via eve-server &gt; PyServiceMgr ENTER MAIN LOOP: ----Set current time and Get tick count ----Check TCP Server's TCP connection stack for the presence of any new TCP connections from EvE clients ----Add new TCP connection from the TCP Server's TCP connection stack onto the Entity list (list of clients connected to evemu server) ----via eve-server &gt; EntityList &gt; Add() ----Process Entity List - run through list of all Clients connected to evemu server ----via eve-server &gt; EntityList &gt; Process() ----Process Service List - run through list of all services registered with PyServiceMgr? ----via eve-server &gt; PyServiceMgr ----Get tick count again, calculate remaining time for thread sleep and SLEEP that time using Sleep() ----IF Server receives SHUTDOWN signal (Ctrl-C, I think), EXIT MAIN LOOP END LOOP Close TCP Server Set Server to OFFLINE Close Log file EXIT MAIN - ends program execution</pre> === <span id="System-Wide_Resources" class="mw-headline"> System-Wide Resources </span> === eve-server contains many &quot;singleton&quot; objects that have exactly one and only one instance throughout the entire server. These objects are singular resources for system-wide access and functions that anything anywhere in the server code base may need access to for various reasons, such as posting a log message to the main server log, accessing the server's database connection to the [http://wiki.evemu.dev/index.php?title=Category:EVEmu_Database&action=edit&redlink=1 EVEmu Database], or any number of in-memory database objects for the [http://wiki.evemu.dev/index.php?title=Category:ModuleManager&action=edit&redlink=1 Module Manager] or other critical services in the code base. Here is a list of the current system-wide singleton objects available anywhere in the codebase using the shown mnemonic: {| ! Service Object Mnemonic ! Description |- | sMarshalStringTable | |- | sDatabase | |- | sLog | |- | sAPIServer | |- | sImageServer | |- | sDGM_Effects_Table | |- | sDGM_Skill_Bonus_Modifiers_Table | |- | sDGM_Ship_Bonus_Modifiers_Table | |- | sDGM_Implant_Bonus_Modifiers_Table | |- | (other ModuleManager related sDGM_XXXXX_Table objects go here) | |- | sEntityList | |- | sConfig | |- | sLiveUpdateDB | |} === <span id="Service_Managers" class="mw-headline"> Service Managers </span> === When the client sends a request to the server, it first sends the service manager name, and then the name of the service, along with a additional arguments like itemID's clientID's...you get the picture. The server decodes the service manager name, then calls upon the appropriate service manager, and passes along the service name and the arguments that go along with it. The service manager takes this and looks through all of the services that it is capable of performing. Once the service has been found, it invokes a new instance of that service, and passes along the arguments, which are processed by the service, and the appropriate response is sent back to the service manager, which sends that to the overall PyServiceManager?, which sends the response to be encoded and send to the TCP connection, where it is the received by the client. If everything went well, you wont see a nice little message called &quot;BeanCount?&quot; pop up in your server window ( unlikely ). If you do, you screwed up somewhere( very likely :D ). Now, there are service managers for just about everything you can think of. There's a Character service manager, Ship service manager, Certificates service manager, Module service manager, NPC service manager... basically any element in the game that actually DOES anything has a service manager associated with it, because besides service calls, the only thing the client ever sends to the server is errors...which, wait for it...call a service called BeanCount?. There's even a service manager for service managers, called PyServiceMgr?, which handles dispatching service calls from the client to the right service manager. So basically, if you want to figure out why something in the game doesn't work, you need to know 2 things: the service manager name and the service name itself. ==== <span id="Working_with_Service_Managers" class="mw-headline"> Working with Service Managers </span> ==== Tip: if your implementing a service, to register it with a service manager, you need to use a function called PyCallable_REG_CALL( service manager name, serivce name) otherwise the service manager won't know about your shiny new service :) Tip: you usually don't need the service manager name though, as you can just search the solution for Handle_[service name] since no two service calls have the same name, or if they do, it will become very apparent that one of them is not what your looking for. For instance, if the client calls Add, and you look for Handle_Add, you may run into a Handle_Add, and realize its under the character creation service manager. Obviously, as it was called when you moved an item into your inventory, this is not what your looking for. Instead you should be looking for something in the InventoryItem? manager or something similar. '''List of Service Managers''' NOTE: This list shows all Service Managers registered with the EVEmu Server as of revision 952 of the experimental branch TODO: Add one-line descriptions for all service managers '''ClientStatsMgr''' '''AgentMgrService''' '''MissionMgrService''' - manages player interaction with player missions / giving players missions, accepting, declining, etc '''AccountService''' '''UserService''' '''AlertService''' '''AuthService''' '''BillMgrService''' '''BookmarkService''' - manages player interaction with Bookmarks in all ways, creation, deletion, usage, conversion to cargo item, etc. '''CertificateMgrService''' - manages player interaction with the Certificates Manager interface, including browsing and awarding of certificates '''CharacterService''' '''CharMgrService''' '''ConfigService''' '''LanguageService''' '''CorpMgrService''' '''CorpStationMgrService''' '''CorporationService''' - manages player interaction Corporation - make corp, dissolve, manage roles of corp members, EVERYTHING in Corp Management window, etc... '''CorpRegistryService''' - manages player interaction players registration of the corporation '''LPService''' - manages player interaction with loyalty points, which he has for certaion faction ingame '''DogmaIMService''' '''InvBrokerService''' '''LSCService''' - Large Scale Chat service '''ObjCacheService''' '''LookupService''' - handles requests to lookup various in-game items, solar systems, characters, corporations and provide an orange auto-link to those resources in the client chat window '''VoiceMgrService''' - manages player interaction EVE in-game voice '''ShipService''' '''InsuranceService''' - manages player interaction with the Eve Ship Insurance and stored insurance contracts in the database '''BeyonceService''' '''MapService''' '''OnlineStatusService''' '''Standing2Service''' '''WarRegistryService''' '''FactionWarMgrService''' '''StationService''' - manages player interaction with bounty, insurance, clone, agents, owerall everthing what can be found in the station '''StationSvcService''' '''JumpCloneService''' - manages player interaction with Jump Clones '''KeeperService''' '''DungeonService''' '''SkillMgrService''' - manages player interaction with the Eve Skills browser and training queue '''TutorialService''' - manages player interaction with the Eve Tutorials '''PetitionerService''' - manages player interaction with petition service from the game master to the player '''SlashService''' '''MarketProxyService''' - this manages the entire Market experience in Eve, anything to do with the Market is done in here (buy orders, sell orders, history, etc) '''ContractMgrService''' - this manages the entire Contracts market in Eve, including Want-to-Sell contracts, Want-to-Buy contracts. Auction contracts, Corporation contracts, and player to player contracts '''ReprocessingService''' - this manages everything to do with using Reprocessing services inside stations '''FactoryService''' - this manages everything to do with Manufacturing items and ships using Industry services inside stations or at POS's with appropriate modules '''RamProxyService''' '''PosMgrService''' - this manages everything to do with Player Owned Stations (POS), shields, automatic defenses, fuel consumption, etc. '''NetService''' '''TradeService''' '''charUnboundMgr''' '''Missing Services ????''' <br /> '''This is a list of service managers that have not even been created to handle parts of the game:''' <pre>ScanMgrService - handles the use of the system scanner and scan probes deployed within a solar system Asteroid Belt spawn service ?? Rat spawn service (could this be the DungeonService? ??) - this would include wormhole rats (Sleepers) as well Wormhole spawn service GangMgrService - handles the interaction and collaboration of multiple players through Fleets Sovereignty service Planetary Management service</pre> === <span id="Major_Game_Features_and_their_Sections_in_eve-server" class="mw-headline"> Major Game Features and their Sections in eve-server </span> === Major Game Feature Description Account? Handles account services Character? Handles services and functions related to EVE characters Chat? Handles services and functions related to Chat and EVEmail Corporation? Handles services and functions related to Corporations Inventory? Handles services and functions related to Items, Attributes, Inventory, etc Manufacturing? Handles services and functions related to Manufacturing Map? Handles services and functions related to the EVE universe map Market? Handles services and functions related to the in-game Market Mining? Handles services and functions related to Mining Missions Handles services and functions related to Agents and Missions NPC Handles services and functions related to NPCs POSMgr Handles services and functions related to POS stations Scanning Handles services and functions related to System and Scan Probe Scanning of solar systems Ship Handles services and functions related to Ships, Destiny, Insurance, Modules, Combat, Targeting Spawn? Handles services and functions related to Spawning NPC rats, Asteroid belts, Wormholes, etc Standing? Handles services and functions related to Standings of all kinds, Faction War, Player War Station Handles services and functions related to Station Services System Handles services and functions related to Systems, Dungeons, Celestial objects, Bubble manager, Bookmarks, Scenarios, Solar systems, etc Trade? Handles services and functions related to Inter-player Trading inside stations Tutorial? Handles services and functions related to Tutorials Client? Handles services and functions related to user Clients ClientSession? Handles services and functions related to user Client sessions EVEmu Coding Aids === <span id="Global_Constants_Structures" class="mw-headline"> Global Constants Structures </span> === The constants structures listed below are manually created from queries on the mysql database tables, so when changes are made to the database in these areas, these constants structures would need to be updated. Some of these structures are incomplete and need to be completed. /eve-common/tables/invCategories.h - EVEDB::invCategories:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invCategories' database table as constants that can be used for whatever you need /eve-common/tables/invGroups.h - EVEDB::invGroups:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invGroups' database table as constants that can be used for whatever you need /eve-common/network/packet_types.h - EVEItemFlags:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all possible values that can be used in the flag field of an inventory item listed in the 'entity' table /eve-common/tables/invCategories.h - other constants structures listed in this file include MACHONETMSG_TYPE, MACHONETERR_TYPE, EVEItemType (this is incomplete), EVEItemChangeType, EVEContainerTypes, EVERookieShipTypes, EVESkillID (this is incomplete), EVEItemTypeID (this is incomplete), EVERace, EVEStandingEventTypeID, an enum containing account roles with ROLE_ prefixes, a group of Corporation Role flags as static const types and some combinations that are useful such as corpRoleAll that grants all roles, or corpRoleAllContainer that grants access to all corporation containers, EVEEffectID, JournalRefType?, EVEAccountKeys, fmtMappingType, EffectCategories? There are also a number of itemID value range checking functions to determine if an itemID found in the entity table is an Agent, or a Stargate, or other specific things. IsAgent?(), IsStaticMapItem?(), IsRegion?(), IsConstellation?(), IsSolarSystem?(), IsUniverseCelestial?(), IsStargate?(), IsStation?(), IsTrading?(), IsOfficeFolder?(), IsFactoryFolder?(), IsUniverseAsteroid?(), IsScenarioItem?() Object Oriented Design of the EVEmu Server The entire EVEmu server is designed with an object-oriented method. Whether the current implementation is good enough is not the subject of this section, but rather to simply document what that design is. The EVE universe is a single galaxy comprised of Solar Systems, all linked by stargates. Each Solar System contains a Star, planets, moons, stations, and other celestial objects. They also contain ships flown by pilots and ships spawned by the Server, NPC ships belonging to the many legit NPC Corporations or Pirate organizations. CLASS: EntityList - The TOP Object EVEmu's top object is the EntityList?, found in include/eve-server/EntityList.h. This class is a Singleton and so only ONE instance exists. It contains a protected member variable system_list m_systems. This list contains ALL Solar System objects that exist in the universe. It is a std::map&lt;&gt; construct with a uint32 key value and a SystemManager? secondary value. The EntityList? object also contains a list of all clients connected to the EVEmu server via a protected member variable client_list m_clients, which is a std::list&lt;&gt; containing the Client * reference pointers for all clients connected to the server. Important Methods Add(Client client) - call this passing in a pointer to a pointer of a Client object to add clients to the EntityList? FindOrBootSystem?(uint32 systemID) - call this passing in a uint32 value equal to the solarSystemID from the mapDenormalize table in order to either Find or Boot that solar system. If the referenced solar system has not had its own SystemManager? object created yet since server start, this function will do that, otherwise, the pointer to the referenced solar system SystemManager? object that already exists will be returned. Broadcast(), Multicast(), Unicast() - These broadcast functions are ways to call Client::SendNotification?() on one or more Client objects referenced in the m_clients list. FindCharacter?(), FindByShip?(), FindAccount?(), FindByStation?(), FindByRegion?() - These functions serve to find Client reference pointers using characterID, characterName, shipID, accountID, stationID, or regionID, the last two return a std::vector&lt;&gt; list of Client reference pointers. Warning: Each of these Find functions make use of simple for() loop search methods, so with very largely populated EVE universes, these functions could potentially take a long time to execute, so make very sparse use of them. Consider strongly a more efficient way of finding the Client object of some character or ship piloted by a character BEFORE resorting to using these functions. CLASS: SystemManager? The SystemManager? class, found in eve-server/system/SystemManager, is the next class object down in the hierarchy, which manages each Solar System. So, as characters log into the server, they enter the game world in specific Solar Systems and if those systems have not been created yet, a SystemManager? object for each of them is created and stored in a list inside the EntityList? as mentioned above. This class object contains a number of things localized to a Solar System and they include a SystemEntity? list in the form of a std::map&lt;&gt; that holds pointers to SystemEntity? objects, each of which are references to objects that exist in that Solar System, a systemID value, a systemName value, a systemSecurity value, its own SpawnManager? object, and its own SystemDB object providing access to the database. NOTES: Much work is needed to manage Asteroid Belt, NPC ship/fleet, Cosmic Anomaly, and Cosmic Signature spawning in each Solar System. It may be that the SpawnManager? object owned by each SystemManager? object will take care of these spawnings, but the SpawnManager? objects need entries in the 'spawns' and 'spawnGroups' tables in the Database. NPC ships/fleets need targets when they spawn, especially when a ship warping to a location within a solar system triggers a spawn, as would happen when entering the grid of a Cosmic Signature marking a complex, or an Asteroid Belt spawning rats. So, the SystemManager? should be expanded to hold a list of ships in space, perhaps, and not just a list of SystemEntities?, however, more research into the SystemEntities? classes are necessary to see if scouring the list of those in a solar system, held by the m_entities protected variable will work as a means for a particular NPC ship/fleet to gather a list of targets in its immediate vicinity. CHANGES It has been proposed that we make several std::map protected member variables along with Add(), Get(), Find(), and Remove() support functions to separate out different kinds of SystemEntity? objects, such as ships in space, cargo containers, POS modules, drones, NPC ships, asteroids, cosmic signatures and anomalies, and other dynamic objects Use simple array objects for static objects like NPC stations, stars, planets, moons, stargates This will make it easier to get lists of targets for NPC ship engagements Important Methods BootSystem?() - This loads the solar system celestials via the _LoadSystemCelestials() call and loads the system dynamics via the _LoadSystemDynamics() call. There is also code here that loads all spawns and fires up the initial spawn via the SpawnManager?, however, this code is commented out with a note that it makes the &quot;client angry&quot;. More research is needed to find out what's going wrong, if anything. ProcessDestiny?() - This is called once for each Destiny second. More research is needed to determine exactly what this does. AddClient?() - Add a client to the list of SystemEntity? objects. This would be done if a pilot's ship jumps into this solar system either with a jump capable ship or a stargate. RemoveClient?() - Removes a client from the list of SystemEntity? objects. This would be done if a pilot's ship jumps out of this solar system either with a jump capable ship or a stargate. AddNPC() - Adds an NPC SystemEntity? to the SystemEntity? list. This would be done when an NPC ship/fleets spawns or is triggered due to a incoming warp to a location where the spawn is located. RemoveNPC() - Removes an NPC SystemEntity? from the SystemEntity? list. This would be done when an NPC ship/fleets is destroyed or de-spawns from a location. AddEntity?() - Adds a generic SystemEntity? object to the list of SystemEntity? objects. RemoveEntity?() - Removes a generic SystemEntity? object from the list of SystemEntity? objects. CLASS: SystemEntity? Found in eve-server/system/SystemEntity.h ABSTRACT CLASS : NO INSTANCES ALLOWED TBD Important Methods TBD CLASS: ItemSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: DynamicSystemEntity? derived from ItemSystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: InanimateSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntities.h CLASS: SimpleSystemEntity? derived from InanimateSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemPlanetEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStationEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStargateEntity? derived from SystemStationEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemSimpleEntity? derived from SystemPlanetEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemDungeonEntranceEntity? derived from ItemSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: tbd Found in ??? == <span id="Conversations_with_Luck_on_eve-server" class="mw-headline"> Conversations with Luck on eve-server </span> == [14:41] '''&lt;@AknorJaden_&gt;''' well, i've been trying to look at different sections of the eve-server to fix little problems like undocking, chats, etc. but i haven't been able to make sense of the API between the service managers and the eve-common stuff that receives, decodes packets, then encodes and sends packets back to the clients [14:42] '''&lt;@Luck&gt;''' okay [14:42] '''&lt;@Luck&gt;''' everything is organized into different types of calls [14:42] '''&lt;@AknorJaden_&gt;''' i guess it's just that there is SO much stuff [14:42] '''&lt;@AknorJaden_&gt;''' yeah saw that [14:42] '''&lt;@Luck&gt;''' lol [14:42] '''&lt;@Luck&gt;''' each call is expecting a different way to decode the packets [14:43] '''&lt;@Luck&gt;''' so you declare the object from eve-common [14:43] *** DanTheBanjoman has joined #evemu [14:43] *** ChanServ sets mode +o DanTheBanjoman [14:43] '''&lt;@AknorJaden_&gt;''' ok, but i bet there isn't some kind of class diagram for all the object classes in the code base, is there? [14:43] '''&lt;@Luck&gt;''' call decode on the packet [14:43] '''&lt;@Luck&gt;''' sure there is [14:43] '''&lt;@AknorJaden_&gt;''' really? [14:43] '''&lt;@Luck&gt;''' all of those packet decoding is generated from xml files by the xmlpacketgen project [14:43] '''&lt;@AknorJaden_&gt;''' yeah, i figured that out at the highest level [14:44] '''&lt;@AknorJaden_&gt;''' those xmlp files get run through xmlpktgen to create the .h files [14:44] '''&lt;@Luck&gt;''' yea [14:45] '''&lt;@Luck&gt;''' so you look at those xml files [14:45] '''&lt;@AknorJaden_&gt;''' do understand the packet structure, eh? [14:45] '''&lt;@Luck&gt;''' and you get an idea of what each call does [14:45] '''&lt;@Luck&gt;''' ? [14:45] '''&lt;@Luck&gt;''' do i? [14:45] '''&lt;@AknorJaden_&gt;''' no, lol [14:45] '''&lt;@AknorJaden_&gt;''' i meant &quot;to&quot;, not &quot;do&quot; [14:45] '''&lt;@Luck&gt;''' oh [14:46] '''&lt;@Luck&gt;''' yes [14:46] '''&lt;@AknorJaden_&gt;''' ok [14:46] '''&lt;@Luck&gt;''' they were all determined by packet sniffing [14:48] '''&lt;@AknorJaden_&gt;''' ok [14:48] '''&lt;@Luck&gt;''' so what else do you want to know? [14:48] '''&lt;@AknorJaden_&gt;''' lol....everything ;) [14:49] '''&lt;@AknorJaden_&gt;''' maybe i should start from the top: packets come in from the client and are received where? [14:50] '''&lt;@Luck&gt;''' the TCP connection [14:50] '''&lt;@AknorJaden_&gt;''' oh right [14:50] '''&lt;@Luck&gt;''' :) [14:50] '''&lt;@Luck&gt;''' they are passed to the PyDispatcher [14:51] '''&lt;@AknorJaden_&gt;''' ah [14:51] '''&lt;@Luck&gt;''' which looks at the information contained in the packet that says which service the client is calling [14:51] '''&lt;@AknorJaden_&gt;''' ok, starting to make sense [14:52] '''&lt;@AknorJaden_&gt;''' so then it calls that appropriate service, right, such as LSCService for chats/mails? [14:52] '''&lt;@Luck&gt; the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function''' [14:52] '''&lt;@Luck&gt;''' yes [14:52] '''&lt;@Luck&gt;''' and LSCService looks to see if it has a function to handle the particular call [14:52] '''&lt;@Luck&gt;''' like Handle_SendMessage [14:53] '''&lt;@Luck&gt;''' time to commit [14:53] '''&lt;@AknorJaden_&gt;''' ok [14:55] '''&lt;@AknorJaden_&gt;''' got it [14:59] '''&lt;@AknorJaden_&gt;''' so now that the packet has called the right function in the right service, how does the packet info get used (is it the &quot;args&quot; object) and then there's the use of that info to do whatever the function called is supposed to do [14:59] '''&lt;@Luck&gt;''' you notice that every function called Handle_Something [15:00] '''&lt;@AknorJaden_&gt;''' yeah, lot's of those, but not all [15:00] '''&lt;@Luck&gt;''' i mean [15:00] '''&lt;@AknorJaden_&gt;''' nevermind, pretty much all of em [15:00] '''&lt;@Luck&gt;''' every function that has a name like that has the same argument [15:00] '''&lt;@Luck&gt;''' PyCallArgs &amp;args [15:00] '''&lt;@AknorJaden_&gt;''' yeah, i was just about to type that [15:01] '''&lt;@Luck&gt;''' not all of them ( there are a few exceptions) but almost all [15:01] '''&lt;@Luck&gt;''' the first part of the function will declare a call object [15:01] '''&lt;@AknorJaden_&gt;''' and the value &quot;call&quot; is polymorphic, right? where PyCallArgs is some kind of base class for all packets? [15:01] '''&lt;@Luck&gt;''' Call_SendMessage args; [15:02] '''&lt;@Luck&gt;''' then you use that Call object to decode the PyCallArgs&amp; call [15:02] '''&lt;@Luck&gt;''' args.Decode( call.tuple ) [15:02] '''&lt;@Luck&gt;''' once you do that, the args object will have the appropirate information in it [15:02] '''&lt;@AknorJaden_&gt;''' now, what is the call.tuple? [15:02] '''&lt;@AknorJaden_&gt;''' or don't i care at this point? [15:02] '''&lt;@Luck&gt;''' call is the PyCallArgs object argument passed to the function [15:03] '''&lt;@Luck&gt;''' and call.tuple means to decode the tuple inside the PyCallArgs object [15:03] '''&lt;@AknorJaden_&gt;''' oh, right, duh. why the tuple attribute? how come that's not private. aren't most data members of a class supposed to be private? [15:03] '''&lt;@AknorJaden_&gt;''' ok [15:03] '''&lt;@Luck&gt;''' not ones that we want to acces [15:03] '''&lt;@Luck&gt;''' :) [15:04] '''&lt;@AknorJaden_&gt;''' call-&gt;getTuple() wouldn't be better? [15:04] '''&lt;@AknorJaden_&gt;''' not so encapsulated [15:04] '''&lt;@Luck&gt;''' in some respects yes [15:04] '''&lt;@AknorJaden_&gt;''' ok [15:10] '''&lt;@AknorJaden_&gt;''' so, then i guess the rest of the story is to go some place in the code to understand *what* is in the args object once it's been decoded, and then start using that info? [15:11] '''&lt;@Luck&gt;''' it goes to figure out what is in the call object [15:11] '''&lt;@Luck&gt;''' PyCallArgs &amp;call [15:11] '''&lt;@AknorJaden_&gt;''' what does, the .Decode() method? [15:11] '''&lt;@Luck&gt;''' args is the result of the decoded call [15:11] '''&lt;@AknorJaden_&gt;''' ok [15:12] '''&lt;@Luck&gt;''' args can then be used normally [15:13] '''&lt;@Captnoord&gt;''' re [15:14] '''&lt;@AknorJaden_&gt;''' ok, so args is an object that has data structures inside that contains info for the function called? [15:14] '''&lt;@Captnoord&gt;''' AknorJaden: the reason for the objects not to have them protected is because of the packet code generator [15:14] '''&lt;@AknorJaden_&gt;''' you mean xmlpktgen? [15:14] '''&lt;@Captnoord&gt;''' yup [15:14] '''&lt;@AknorJaden_&gt;''' ok [15:14] '''&lt;@Captnoord&gt;''' which is a piece of shit [15:15] '''&lt;@AknorJaden_&gt;''' LOL [15:15] '''&lt;@Luck&gt;''' hahaha [15:15] '''&lt;@Luck&gt;''' he's right [15:15] * @Luck waves a Captnoord [15:15] '''&lt;@AknorJaden_&gt;''' it's ok. i'm no OOD expert, but i do undedrstand encapsulation [15:16] * @Captnoord waves back..... [15:17] '''&lt;@Captnoord&gt;''' hmmm my girl offers me something I can't ignore..... [15:17] '''&lt;@Captnoord&gt;''' crap... [15:17] '''&lt;@Captnoord&gt;''' :P [15:17] '''&lt;@AknorJaden_&gt;''' dude, what are you waiting for ....GO [15:19] '''&lt;@Luck&gt;''' lol [15:19] '''&lt;@Luck&gt;''' gtfo of here man [15:19] '''&lt;@AknorJaden_&gt;''' so, luck, when i am in the LSCService, i need to go look at the xmlp files (or more appropriately, the .h files) to find out what stuff is in the decoded args object? [15:19] '''&lt;@Luck&gt;''' that's one way yes [15:20] '''&lt;@AknorJaden_&gt;''' ok, is there an easier way? [15:20] '''&lt;@Luck&gt;''' start typing args. [15:20] '''&lt;@Luck&gt;''' and see what intellisense tells you is available [15:20] '''&lt;@Luck&gt;''' :) [15:20] '''&lt;@Luck&gt;''' not always accurate though [15:20] '''&lt;@AknorJaden_&gt;''' where, in the function i'm in? [15:20] '''&lt;@Luck&gt;''' yea [15:21] '''&lt;@Luck&gt;''' your better off looking at the Decode() function for that particular call though [15:21] '''&lt;@Luck&gt;''' oh [15:21] '''&lt;@Luck&gt;''' if anyone is interested, new commit to the exp branch [15:21] '''&lt;@AknorJaden_&gt;''' ok, thanks for the tip. but am i right about going to the .h files under eve-common\include\packets for the source? [15:21] '''&lt;@Luck&gt;''' no.. [15:21] '''&lt;@Luck&gt;''' go to the .cpp files [15:22] '''&lt;@Luck&gt;''' well i guess you could go to the .h files [15:22] '''&lt;@AknorJaden_&gt;''' so, eve-common\src\packets ? [15:22] '''&lt;@Luck&gt;''' i guess [15:22] '''&lt;@Luck&gt;''' i look at it in VS [15:22] '''&lt;@Luck&gt;''' structure is slightly different [15:22] '''&lt;@Luck&gt;''' wait [15:23] '''&lt;@AknorJaden_&gt;''' yeah, that's what i meant. i look at the .h and .cpp files in VS [15:23] '''&lt;@Luck&gt;''' nvm [15:23] '''&lt;@Luck&gt;''' kk [15:23] '''&lt;@Luck&gt;''' yea [15:23] '''&lt;@Luck&gt;''' eve-common/src/packets [15:23] '''&lt;@Luck&gt;''' the ability to ban accounts from the server has been added [15:23] '''&lt;@Luck&gt;''' exp branch rev 975 [15:23] '''&lt;@Luck&gt;''' *974 [15:25] '''&lt;@AknorJaden_&gt;''' cool, i can ban myself from my own solo server LOL [15:25] '''&lt;@Luck&gt;''' lol [15:25] '''&lt;@Luck&gt;''' careful [15:25] '''&lt;@Luck&gt;''' it will kick you [15:25] '''&lt;@AknorJaden_&gt;''' well duh! [15:25] '''&lt;@Luck&gt;''' and you won't be able to log back into unban yourself [15:25] '''&lt;@Luck&gt;''' so you'll have to edit your db [15:25] '''&lt;@AknorJaden_&gt;''' ah, but i can use phpmyadmin! [15:25] '''&lt;@Luck&gt;''' fair enough [15:25] '''&lt;@AknorJaden_&gt;''' hehe [15:26] '''&lt;@Luck&gt;''' you should read the announcement on the forums about it [15:26] '''&lt;@AknorJaden_&gt;''' oh, hey that reminds me...eve-server isn't coded to take advantage of multi-core processors is it? [15:27] '''&lt;@AknorJaden_&gt;''' brb [15:29] '''&lt;@Luck&gt;''' umm not really [15:33] '''&lt;@Luck&gt;''' k guys, i g2g deal with some rl shit [15:33] '''&lt;@Luck&gt;''' i'll ttyl [15:33] *** Luck has quit IRC: [MF] Quit: Leaving [15:34] '''&lt;@AknorJaden_&gt;''' or for that matter, eve-server definitely doesn't run on a server farm either, eh? ----- # client sends packet to server # packet received by TCP section # received packets are sent to PyDispatcher # PyDispatcher looks at packet info to figure out what service to call ## the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function 0c672bae104ef974b1742d61b9c7fbe6427db741 219 218 2021-04-04T01:57:06Z DarksHeiress 7 wikitext text/x-wiki == <span id="EVEmu_eve-server_project" class="mw-headline"> '''EVEmu eve-server project''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to write code for it is already in place in the other projects. <br /> == <span id="eve-server.cpp" class="mw-headline"> '''eve-server.cpp''' </span> == This project contains the single most important file in the entire solution: '''eve-server.cpp'''. (it's named &quot;eve-server&quot; for a reason :) ). eve-server.cpp contains the primary loop of the server, which, while the server is running, performs the following tasks: # Initialize logging, read configuration, connect to database # Start API and Image servers # Create various [[#System-Wide_Resources|system-wide resource objects]] # Register all [[#Service_Managers|services]] # Create game memory objects: [http://wiki.evemu.dev/index.php?title=Category:Item_Factory&action=edit&redlink=1 Item Factory], [[Category_Module_Manager.html|Module Manager]] effects &amp; info tables # LOOP: ## Check for incoming packets on the TCP connection ## If there is an incoming packet, decode it ## Make the appropriate response ## Send the response to the client that sent the request ## Scan through entire [http://wiki.evemu.dev/index.php?title=Category:Entity_List&action=edit&redlink=1 Entity List] for any items that need actions taken (modules changed, timers expired, etc) ## Scan through entire list of [[#Service_Managers|services]] to process any actions pending ## Monitor for Ctrl+C server shutdown command # END LOOP # shut down logging, API server, Image server, TCP server # close logfile # Entity List destructor invokes save-off to database of all modified objects That is folks. That's all it does. In fact that's all the entire project does...ever. All of your coding that you will more than likely be doing will be focused solely on number 3. 1, 2, and 4 are pretty much done, and unless you're doing some serious revision of the entire server structure, or just like breaking things, you'll probably never touch them. Fortunately for you, 3 covers an immense amount of code. In fact, it is almost all of the server code. Basically, number 3 is broken into various service managers. Service Managers are discussed later in this article. So that is basically how the eve server in its entirety functions. A call is received from the client, processed by the appropriate service manager/service, and a response is sent. During that time, all manner of things can happen. The general structure of the code is as follow: Service Managers and their associated services are found in code files called SomethingService.cpp or SomethingServiceMgr.cpp. Anything that requests information from the evemu database is found in code files named SomethingDB.cpp. Things just named Something.cpp contain data structures and the actual code behind a service call. What you will usually see is that the service call, like Handle_Add, will have statements to make sure that it can decode the arguments passed to it by the client. Once that is affirmed, the Handle_Something function will usually call a (usually protected) function that actually executes whatever the service is supposed to do. The rest of the stuff are helper functions, such as packet decodes, query formatters and so on. Here is pseudocode of what eve-server.cpp does and what happens inside: <pre>At start-up, print splash info on Copyright, licensing, EvE client version Set current time Load server configuration from local eve-server.xml via eve-server &gt; EVEServerConfig Load server log settings from local log.ini via common? &gt; LogNew Connect to evemu mysql database using info from local eve-server.xml via common? &gt; DBcore Create the DGM Type Attribute Manager via eve-server &gt; dgmtypeattributemgr Start the TCP server via eve-common &gt; EVETCPServer -and- common? &gt; TCPServer Make the Item Factory via eve-server &gt; ItemFactory Create the main Service Manager via eve-server &gt; PyServiceMgr Create the Command Dispatcher object via eve-server &gt; CommandDispatcher Register all commands via eve-server &gt; AllCommands.h Register all services (see the List of Service Managers below for a complete list) via eve-server &gt; PyServiceMgr Cache Database Tables using Object Cache Service via eve-server &gt; ObjCacheService Set Server to ONLINE via eve-server &gt; PyServiceMgr ENTER MAIN LOOP: ----Set current time and Get tick count ----Check TCP Server's TCP connection stack for the presence of any new TCP connections from EvE clients ----Add new TCP connection from the TCP Server's TCP connection stack onto the Entity list (list of clients connected to evemu server) ----via eve-server &gt; EntityList &gt; Add() ----Process Entity List - run through list of all Clients connected to evemu server ----via eve-server &gt; EntityList &gt; Process() ----Process Service List - run through list of all services registered with PyServiceMgr? ----via eve-server &gt; PyServiceMgr ----Get tick count again, calculate remaining time for thread sleep and SLEEP that time using Sleep() ----IF Server receives SHUTDOWN signal (Ctrl-C, I think), EXIT MAIN LOOP END LOOP Close TCP Server Set Server to OFFLINE Close Log file EXIT MAIN - ends program execution</pre> === <span id="System-Wide_Resources" class="mw-headline"> System-Wide Resources </span> === eve-server contains many &quot;singleton&quot; objects that have exactly one and only one instance throughout the entire server. These objects are singular resources for system-wide access and functions that anything anywhere in the server code base may need access to for various reasons, such as posting a log message to the main server log, accessing the server's database connection to the [http://wiki.evemu.dev/index.php?title=Category:EVEmu_Database&action=edit&redlink=1 EVEmu Database], or any number of in-memory database objects for the [http://wiki.evemu.dev/index.php?title=Category:ModuleManager&action=edit&redlink=1 Module Manager] or other critical services in the code base. Here is a list of the current system-wide singleton objects available anywhere in the codebase using the shown mnemonic: {| ! Service Object Mnemonic ! Description |- | sMarshalStringTable | |- | sDatabase | |- | sLog | |- | sAPIServer | |- | sImageServer | |- | sDGM_Effects_Table | |- | sDGM_Skill_Bonus_Modifiers_Table | |- | sDGM_Ship_Bonus_Modifiers_Table | |- | sDGM_Implant_Bonus_Modifiers_Table | |- | (other ModuleManager related sDGM_XXXXX_Table objects go here) | |- | sEntityList | |- | sConfig | |- | sLiveUpdateDB | |} === <span id="Service_Managers" class="mw-headline"> Service Managers </span> === When the client sends a request to the server, it first sends the service manager name, and then the name of the service, along with a additional arguments like itemID's clientID's...you get the picture. The server decodes the service manager name, then calls upon the appropriate service manager, and passes along the service name and the arguments that go along with it. The service manager takes this and looks through all of the services that it is capable of performing. Once the service has been found, it invokes a new instance of that service, and passes along the arguments, which are processed by the service, and the appropriate response is sent back to the service manager, which sends that to the overall PyServiceManager?, which sends the response to be encoded and send to the TCP connection, where it is the received by the client. If everything went well, you wont see a nice little message called &quot;BeanCount?&quot; pop up in your server window ( unlikely ). If you do, you screwed up somewhere( very likely :D ). Now, there are service managers for just about everything you can think of. There's a Character service manager, Ship service manager, Certificates service manager, Module service manager, NPC service manager... basically any element in the game that actually DOES anything has a service manager associated with it, because besides service calls, the only thing the client ever sends to the server is errors...which, wait for it...call a service called BeanCount?. There's even a service manager for service managers, called PyServiceMgr?, which handles dispatching service calls from the client to the right service manager. So basically, if you want to figure out why something in the game doesn't work, you need to know 2 things: the service manager name and the service name itself. ==== <span id="Working_with_Service_Managers" class="mw-headline"> Working with Service Managers </span> ==== Tip: if your implementing a service, to register it with a service manager, you need to use a function called PyCallable_REG_CALL( service manager name, serivce name) otherwise the service manager won't know about your shiny new service :) Tip: you usually don't need the service manager name though, as you can just search the solution for Handle_[service name] since no two service calls have the same name, or if they do, it will become very apparent that one of them is not what your looking for. For instance, if the client calls Add, and you look for Handle_Add, you may run into a Handle_Add, and realize its under the character creation service manager. Obviously, as it was called when you moved an item into your inventory, this is not what your looking for. Instead you should be looking for something in the InventoryItem? manager or something similar. '''List of Service Managers''' NOTE: This list shows all Service Managers registered with the EVEmu Server as of revision 952 of the experimental branch TODO: Add one-line descriptions for all service managers '''ClientStatsMgr''' '''AgentMgrService''' '''MissionMgrService''' - manages player interaction with player missions / giving players missions, accepting, declining, etc '''AccountService''' '''UserService''' '''AlertService''' '''AuthService''' '''BillMgrService''' '''BookmarkService''' - manages player interaction with Bookmarks in all ways, creation, deletion, usage, conversion to cargo item, etc. '''CertificateMgrService''' - manages player interaction with the Certificates Manager interface, including browsing and awarding of certificates '''CharacterService''' '''CharMgrService''' '''ConfigService''' '''LanguageService''' '''CorpMgrService''' '''CorpStationMgrService''' '''CorporationService''' - manages player interaction Corporation - make corp, dissolve, manage roles of corp members, EVERYTHING in Corp Management window, etc... '''CorpRegistryService''' - manages player interaction players registration of the corporation '''LPService''' - manages player interaction with loyalty points, which he has for certaion faction ingame '''DogmaIMService''' '''InvBrokerService''' '''LSCService''' - Large Scale Chat service '''ObjCacheService''' '''LookupService''' - handles requests to lookup various in-game items, solar systems, characters, corporations and provide an orange auto-link to those resources in the client chat window '''VoiceMgrService''' - manages player interaction EVE in-game voice '''ShipService''' '''InsuranceService''' - manages player interaction with the Eve Ship Insurance and stored insurance contracts in the database '''BeyonceService''' '''MapService''' '''OnlineStatusService''' '''Standing2Service''' '''WarRegistryService''' '''FactionWarMgrService''' '''StationService''' - manages player interaction with bounty, insurance, clone, agents, owerall everthing what can be found in the station '''StationSvcService''' '''JumpCloneService''' - manages player interaction with Jump Clones '''KeeperService''' '''DungeonService''' '''SkillMgrService''' - manages player interaction with the Eve Skills browser and training queue '''TutorialService''' - manages player interaction with the Eve Tutorials '''PetitionerService''' - manages player interaction with petition service from the game master to the player '''SlashService''' '''MarketProxyService''' - this manages the entire Market experience in Eve, anything to do with the Market is done in here (buy orders, sell orders, history, etc) '''ContractMgrService''' - this manages the entire Contracts market in Eve, including Want-to-Sell contracts, Want-to-Buy contracts. Auction contracts, Corporation contracts, and player to player contracts '''ReprocessingService''' - this manages everything to do with using Reprocessing services inside stations '''FactoryService''' - this manages everything to do with Manufacturing items and ships using Industry services inside stations or at POS's with appropriate modules '''RamProxyService''' '''PosMgrService''' - this manages everything to do with Player Owned Stations (POS), shields, automatic defenses, fuel consumption, etc. '''NetService''' '''TradeService''' '''charUnboundMgr''' '''Missing Services ????''' <br /> '''This is a list of service managers that have not even been created to handle parts of the game:''' <pre>ScanMgrService - handles the use of the system scanner and scan probes deployed within a solar system Asteroid Belt spawn service ?? Rat spawn service (could this be the DungeonService? ??) - this would include wormhole rats (Sleepers) as well Wormhole spawn service GangMgrService - handles the interaction and collaboration of multiple players through Fleets Sovereignty service Planetary Management service</pre> === <span id="Major_Game_Features_and_their_Sections_in_eve-server" class="mw-headline"> Major Game Features and their Sections in eve-server </span> === Major Game Feature Description Account? Handles account services Character? Handles services and functions related to EVE characters Chat? Handles services and functions related to Chat and EVEmail Corporation? Handles services and functions related to Corporations Inventory? Handles services and functions related to Items, Attributes, Inventory, etc Manufacturing? Handles services and functions related to Manufacturing Map? Handles services and functions related to the EVE universe map Market? Handles services and functions related to the in-game Market Mining? Handles services and functions related to Mining Missions Handles services and functions related to Agents and Missions NPC Handles services and functions related to NPCs POSMgr Handles services and functions related to POS stations Scanning Handles services and functions related to System and Scan Probe Scanning of solar systems Ship Handles services and functions related to Ships, Destiny, Insurance, Modules, Combat, Targeting Spawn? Handles services and functions related to Spawning NPC rats, Asteroid belts, Wormholes, etc Standing? Handles services and functions related to Standings of all kinds, Faction War, Player War Station Handles services and functions related to Station Services System Handles services and functions related to Systems, Dungeons, Celestial objects, Bubble manager, Bookmarks, Scenarios, Solar systems, etc Trade? Handles services and functions related to Inter-player Trading inside stations Tutorial? Handles services and functions related to Tutorials Client? Handles services and functions related to user Clients ClientSession? Handles services and functions related to user Client sessions EVEmu Coding Aids === <span id="Global_Constants_Structures" class="mw-headline"> Global Constants Structures </span> === The constants structures listed below are manually created from queries on the mysql database tables, so when changes are made to the database in these areas, these constants structures would need to be updated. Some of these structures are incomplete and need to be completed. /eve-common/tables/invCategories.h - EVEDB::invCategories:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invCategories' database table as constants that can be used for whatever you need /eve-common/tables/invGroups.h - EVEDB::invGroups:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invGroups' database table as constants that can be used for whatever you need /eve-common/network/packet_types.h - EVEItemFlags:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all possible values that can be used in the flag field of an inventory item listed in the 'entity' table /eve-common/tables/invCategories.h - other constants structures listed in this file include MACHONETMSG_TYPE, MACHONETERR_TYPE, EVEItemType (this is incomplete), EVEItemChangeType, EVEContainerTypes, EVERookieShipTypes, EVESkillID (this is incomplete), EVEItemTypeID (this is incomplete), EVERace, EVEStandingEventTypeID, an enum containing account roles with ROLE_ prefixes, a group of Corporation Role flags as static const types and some combinations that are useful such as corpRoleAll that grants all roles, or corpRoleAllContainer that grants access to all corporation containers, EVEEffectID, JournalRefType?, EVEAccountKeys, fmtMappingType, EffectCategories? There are also a number of itemID value range checking functions to determine if an itemID found in the entity table is an Agent, or a Stargate, or other specific things. IsAgent?(), IsStaticMapItem?(), IsRegion?(), IsConstellation?(), IsSolarSystem?(), IsUniverseCelestial?(), IsStargate?(), IsStation?(), IsTrading?(), IsOfficeFolder?(), IsFactoryFolder?(), IsUniverseAsteroid?(), IsScenarioItem?() Object Oriented Design of the EVEmu Server The entire EVEmu server is designed with an object-oriented method. Whether the current implementation is good enough is not the subject of this section, but rather to simply document what that design is. The EVE universe is a single galaxy comprised of Solar Systems, all linked by stargates. Each Solar System contains a Star, planets, moons, stations, and other celestial objects. They also contain ships flown by pilots and ships spawned by the Server, NPC ships belonging to the many legit NPC Corporations or Pirate organizations. CLASS: EntityList - The TOP Object EVEmu's top object is the EntityList?, found in include/eve-server/EntityList.h. This class is a Singleton and so only ONE instance exists. It contains a protected member variable system_list m_systems. This list contains ALL Solar System objects that exist in the universe. It is a std::map&lt;&gt; construct with a uint32 key value and a SystemManager? secondary value. The EntityList? object also contains a list of all clients connected to the EVEmu server via a protected member variable client_list m_clients, which is a std::list&lt;&gt; containing the Client * reference pointers for all clients connected to the server. Important Methods Add(Client client) - call this passing in a pointer to a pointer of a Client object to add clients to the EntityList? FindOrBootSystem?(uint32 systemID) - call this passing in a uint32 value equal to the solarSystemID from the mapDenormalize table in order to either Find or Boot that solar system. If the referenced solar system has not had its own SystemManager? object created yet since server start, this function will do that, otherwise, the pointer to the referenced solar system SystemManager? object that already exists will be returned. Broadcast(), Multicast(), Unicast() - These broadcast functions are ways to call Client::SendNotification?() on one or more Client objects referenced in the m_clients list. FindCharacter?(), FindByShip?(), FindAccount?(), FindByStation?(), FindByRegion?() - These functions serve to find Client reference pointers using characterID, characterName, shipID, accountID, stationID, or regionID, the last two return a std::vector&lt;&gt; list of Client reference pointers. Warning: Each of these Find functions make use of simple for() loop search methods, so with very largely populated EVE universes, these functions could potentially take a long time to execute, so make very sparse use of them. Consider strongly a more efficient way of finding the Client object of some character or ship piloted by a character BEFORE resorting to using these functions. CLASS: SystemManager? The SystemManager? class, found in eve-server/system/SystemManager, is the next class object down in the hierarchy, which manages each Solar System. So, as characters log into the server, they enter the game world in specific Solar Systems and if those systems have not been created yet, a SystemManager? object for each of them is created and stored in a list inside the EntityList? as mentioned above. This class object contains a number of things localized to a Solar System and they include a SystemEntity? list in the form of a std::map&lt;&gt; that holds pointers to SystemEntity? objects, each of which are references to objects that exist in that Solar System, a systemID value, a systemName value, a systemSecurity value, its own SpawnManager? object, and its own SystemDB object providing access to the database. NOTES: Much work is needed to manage Asteroid Belt, NPC ship/fleet, Cosmic Anomaly, and Cosmic Signature spawning in each Solar System. It may be that the SpawnManager? object owned by each SystemManager? object will take care of these spawnings, but the SpawnManager? objects need entries in the 'spawns' and 'spawnGroups' tables in the Database. NPC ships/fleets need targets when they spawn, especially when a ship warping to a location within a solar system triggers a spawn, as would happen when entering the grid of a Cosmic Signature marking a complex, or an Asteroid Belt spawning rats. So, the SystemManager? should be expanded to hold a list of ships in space, perhaps, and not just a list of SystemEntities?, however, more research into the SystemEntities? classes are necessary to see if scouring the list of those in a solar system, held by the m_entities protected variable will work as a means for a particular NPC ship/fleet to gather a list of targets in its immediate vicinity. CHANGES It has been proposed that we make several std::map protected member variables along with Add(), Get(), Find(), and Remove() support functions to separate out different kinds of SystemEntity? objects, such as ships in space, cargo containers, POS modules, drones, NPC ships, asteroids, cosmic signatures and anomalies, and other dynamic objects Use simple array objects for static objects like NPC stations, stars, planets, moons, stargates This will make it easier to get lists of targets for NPC ship engagements Important Methods BootSystem?() - This loads the solar system celestials via the _LoadSystemCelestials() call and loads the system dynamics via the _LoadSystemDynamics() call. There is also code here that loads all spawns and fires up the initial spawn via the SpawnManager?, however, this code is commented out with a note that it makes the &quot;client angry&quot;. More research is needed to find out what's going wrong, if anything. ProcessDestiny?() - This is called once for each Destiny second. More research is needed to determine exactly what this does. AddClient?() - Add a client to the list of SystemEntity? objects. This would be done if a pilot's ship jumps into this solar system either with a jump capable ship or a stargate. RemoveClient?() - Removes a client from the list of SystemEntity? objects. This would be done if a pilot's ship jumps out of this solar system either with a jump capable ship or a stargate. AddNPC() - Adds an NPC SystemEntity? to the SystemEntity? list. This would be done when an NPC ship/fleets spawns or is triggered due to a incoming warp to a location where the spawn is located. RemoveNPC() - Removes an NPC SystemEntity? from the SystemEntity? list. This would be done when an NPC ship/fleets is destroyed or de-spawns from a location. AddEntity?() - Adds a generic SystemEntity? object to the list of SystemEntity? objects. RemoveEntity?() - Removes a generic SystemEntity? object from the list of SystemEntity? objects. CLASS: SystemEntity? Found in eve-server/system/SystemEntity.h ABSTRACT CLASS : NO INSTANCES ALLOWED TBD Important Methods TBD CLASS: ItemSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: DynamicSystemEntity? derived from ItemSystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: InanimateSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntities.h CLASS: SimpleSystemEntity? derived from InanimateSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemPlanetEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStationEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStargateEntity? derived from SystemStationEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemSimpleEntity? derived from SystemPlanetEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemDungeonEntranceEntity? derived from ItemSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: tbd Found in ??? == <span id="Conversations_with_Luck_on_eve-server" class="mw-headline"> Conversations with Luck on eve-server </span> == [14:41] '''&lt;@AknorJaden_&gt;''' well, i've been trying to look at different sections of the eve-server to fix little problems like undocking, chats, etc. but i haven't been able to make sense of the API between the service managers and the eve-common stuff that receives, decodes packets, then encodes and sends packets back to the clients [14:42] '''&lt;@Luck&gt;''' okay [14:42] '''&lt;@Luck&gt;''' everything is organized into different types of calls [14:42] '''&lt;@AknorJaden_&gt;''' i guess it's just that there is SO much stuff [14:42] '''&lt;@AknorJaden_&gt;''' yeah saw that [14:42] '''&lt;@Luck&gt;''' lol [14:42] '''&lt;@Luck&gt;''' each call is expecting a different way to decode the packets [14:43] '''&lt;@Luck&gt;''' so you declare the object from eve-common [14:43] *** DanTheBanjoman has joined #evemu [14:43] *** ChanServ sets mode +o DanTheBanjoman [14:43] '''&lt;@AknorJaden_&gt;''' ok, but i bet there isn't some kind of class diagram for all the object classes in the code base, is there? [14:43] '''&lt;@Luck&gt;''' call decode on the packet [14:43] '''&lt;@Luck&gt;''' sure there is [14:43] '''&lt;@AknorJaden_&gt;''' really? [14:43] '''&lt;@Luck&gt;''' all of those packet decoding is generated from xml files by the xmlpacketgen project [14:43] '''&lt;@AknorJaden_&gt;''' yeah, i figured that out at the highest level [14:44] '''&lt;@AknorJaden_&gt;''' those xmlp files get run through xmlpktgen to create the .h files [14:44] '''&lt;@Luck&gt;''' yea [14:45] '''&lt;@Luck&gt;''' so you look at those xml files [14:45] '''&lt;@AknorJaden_&gt;''' do understand the packet structure, eh? [14:45] '''&lt;@Luck&gt;''' and you get an idea of what each call does [14:45] '''&lt;@Luck&gt;''' ? [14:45] '''&lt;@Luck&gt;''' do i? [14:45] '''&lt;@AknorJaden_&gt;''' no, lol [14:45] '''&lt;@AknorJaden_&gt;''' i meant &quot;to&quot;, not &quot;do&quot; [14:45] '''&lt;@Luck&gt;''' oh [14:46] '''&lt;@Luck&gt;''' yes [14:46] '''&lt;@AknorJaden_&gt;''' ok [14:46] '''&lt;@Luck&gt;''' they were all determined by packet sniffing [14:48] '''&lt;@AknorJaden_&gt;''' ok [14:48] '''&lt;@Luck&gt;''' so what else do you want to know? [14:48] '''&lt;@AknorJaden_&gt;''' lol....everything ;) [14:49] '''&lt;@AknorJaden_&gt;''' maybe i should start from the top: packets come in from the client and are received where? [14:50] '''&lt;@Luck&gt;''' the TCP connection [14:50] '''&lt;@AknorJaden_&gt;''' oh right [14:50] '''&lt;@Luck&gt;''' :) [14:50] '''&lt;@Luck&gt;''' they are passed to the PyDispatcher [14:51] '''&lt;@AknorJaden_&gt;''' ah [14:51] '''&lt;@Luck&gt;''' which looks at the information contained in the packet that says which service the client is calling [14:51] '''&lt;@AknorJaden_&gt;''' ok, starting to make sense [14:52] '''&lt;@AknorJaden_&gt;''' so then it calls that appropriate service, right, such as LSCService for chats/mails? [14:52] '''&lt;@Luck&gt; the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function''' [14:52] '''&lt;@Luck&gt;''' yes [14:52] '''&lt;@Luck&gt;''' and LSCService looks to see if it has a function to handle the particular call [14:52] '''&lt;@Luck&gt;''' like Handle_SendMessage [14:53] '''&lt;@Luck&gt;''' time to commit [14:53] '''&lt;@AknorJaden_&gt;''' ok [14:55] '''&lt;@AknorJaden_&gt;''' got it [14:59] '''&lt;@AknorJaden_&gt;''' so now that the packet has called the right function in the right service, how does the packet info get used (is it the &quot;args&quot; object) and then there's the use of that info to do whatever the function called is supposed to do [14:59] '''&lt;@Luck&gt;''' you notice that every function called Handle_Something [15:00] '''&lt;@AknorJaden_&gt;''' yeah, lot's of those, but not all [15:00] '''&lt;@Luck&gt;''' i mean [15:00] '''&lt;@AknorJaden_&gt;''' nevermind, pretty much all of em [15:00] '''&lt;@Luck&gt;''' every function that has a name like that has the same argument [15:00] '''&lt;@Luck&gt;''' PyCallArgs &amp;args [15:00] '''&lt;@AknorJaden_&gt;''' yeah, i was just about to type that [15:01] '''&lt;@Luck&gt;''' not all of them ( there are a few exceptions) but almost all [15:01] '''&lt;@Luck&gt;''' the first part of the function will declare a call object [15:01] '''&lt;@AknorJaden_&gt;''' and the value &quot;call&quot; is polymorphic, right? where PyCallArgs is some kind of base class for all packets? [15:01] '''&lt;@Luck&gt;''' Call_SendMessage args; [15:02] '''&lt;@Luck&gt;''' then you use that Call object to decode the PyCallArgs&amp; call [15:02] '''&lt;@Luck&gt;''' args.Decode( call.tuple ) [15:02] '''&lt;@Luck&gt;''' once you do that, the args object will have the appropirate information in it [15:02] '''&lt;@AknorJaden_&gt;''' now, what is the call.tuple? [15:02] '''&lt;@AknorJaden_&gt;''' or don't i care at this point? [15:02] '''&lt;@Luck&gt;''' call is the PyCallArgs object argument passed to the function [15:03] '''&lt;@Luck&gt;''' and call.tuple means to decode the tuple inside the PyCallArgs object [15:03] '''&lt;@AknorJaden_&gt;''' oh, right, duh. why the tuple attribute? how come that's not private. aren't most data members of a class supposed to be private? [15:03] '''&lt;@AknorJaden_&gt;''' ok [15:03] '''&lt;@Luck&gt;''' not ones that we want to acces [15:03] '''&lt;@Luck&gt;''' :) [15:04] '''&lt;@AknorJaden_&gt;''' call-&gt;getTuple() wouldn't be better? [15:04] '''&lt;@AknorJaden_&gt;''' not so encapsulated [15:04] '''&lt;@Luck&gt;''' in some respects yes [15:04] '''&lt;@AknorJaden_&gt;''' ok [15:10] '''&lt;@AknorJaden_&gt;''' so, then i guess the rest of the story is to go some place in the code to understand *what* is in the args object once it's been decoded, and then start using that info? [15:11] '''&lt;@Luck&gt;''' it goes to figure out what is in the call object [15:11] '''&lt;@Luck&gt;''' PyCallArgs &amp;call [15:11] '''&lt;@AknorJaden_&gt;''' what does, the .Decode() method? [15:11] '''&lt;@Luck&gt;''' args is the result of the decoded call [15:11] '''&lt;@AknorJaden_&gt;''' ok [15:12] '''&lt;@Luck&gt;''' args can then be used normally [15:13] '''&lt;@Captnoord&gt;''' re [15:14] '''&lt;@AknorJaden_&gt;''' ok, so args is an object that has data structures inside that contains info for the function called? [15:14] '''&lt;@Captnoord&gt;''' AknorJaden: the reason for the objects not to have them protected is because of the packet code generator [15:14] '''&lt;@AknorJaden_&gt;''' you mean xmlpktgen? [15:14] '''&lt;@Captnoord&gt;''' yup [15:14] '''&lt;@AknorJaden_&gt;''' ok [15:14] '''&lt;@Captnoord&gt;''' which is a piece of shit [15:15] '''&lt;@AknorJaden_&gt;''' LOL [15:15] '''&lt;@Luck&gt;''' hahaha [15:15] '''&lt;@Luck&gt;''' he's right [15:15] * @Luck waves a Captnoord [15:15] '''&lt;@AknorJaden_&gt;''' it's ok. i'm no OOD expert, but i do undedrstand encapsulation [15:16] * @Captnoord waves back..... [15:17] '''&lt;@Captnoord&gt;''' hmmm my girl offers me something I can't ignore..... [15:17] '''&lt;@Captnoord&gt;''' crap... [15:17] '''&lt;@Captnoord&gt;''' :P [15:17] '''&lt;@AknorJaden_&gt;''' dude, what are you waiting for ....GO [15:19] '''&lt;@Luck&gt;''' lol [15:19] '''&lt;@Luck&gt;''' gtfo of here man [15:19] '''&lt;@AknorJaden_&gt;''' so, luck, when i am in the LSCService, i need to go look at the xmlp files (or more appropriately, the .h files) to find out what stuff is in the decoded args object? [15:19] '''&lt;@Luck&gt;''' that's one way yes [15:20] '''&lt;@AknorJaden_&gt;''' ok, is there an easier way? [15:20] '''&lt;@Luck&gt;''' start typing args. [15:20] '''&lt;@Luck&gt;''' and see what intellisense tells you is available [15:20] '''&lt;@Luck&gt;''' :) [15:20] '''&lt;@Luck&gt;''' not always accurate though [15:20] '''&lt;@AknorJaden_&gt;''' where, in the function i'm in? [15:20] '''&lt;@Luck&gt;''' yea [15:21] '''&lt;@Luck&gt;''' your better off looking at the Decode() function for that particular call though [15:21] '''&lt;@Luck&gt;''' oh [15:21] '''&lt;@Luck&gt;''' if anyone is interested, new commit to the exp branch [15:21] '''&lt;@AknorJaden_&gt;''' ok, thanks for the tip. but am i right about going to the .h files under eve-common\include\packets for the source? [15:21] '''&lt;@Luck&gt;''' no.. [15:21] '''&lt;@Luck&gt;''' go to the .cpp files [15:22] '''&lt;@Luck&gt;''' well i guess you could go to the .h files [15:22] '''&lt;@AknorJaden_&gt;''' so, eve-common\src\packets ? [15:22] '''&lt;@Luck&gt;''' i guess [15:22] '''&lt;@Luck&gt;''' i look at it in VS [15:22] '''&lt;@Luck&gt;''' structure is slightly different [15:22] '''&lt;@Luck&gt;''' wait [15:23] '''&lt;@AknorJaden_&gt;''' yeah, that's what i meant. i look at the .h and .cpp files in VS [15:23] '''&lt;@Luck&gt;''' nvm [15:23] '''&lt;@Luck&gt;''' kk [15:23] '''&lt;@Luck&gt;''' yea [15:23] '''&lt;@Luck&gt;''' eve-common/src/packets [15:23] '''&lt;@Luck&gt;''' the ability to ban accounts from the server has been added [15:23] '''&lt;@Luck&gt;''' exp branch rev 975 [15:23] '''&lt;@Luck&gt;''' *974 [15:25] '''&lt;@AknorJaden_&gt;''' cool, i can ban myself from my own solo server LOL [15:25] '''&lt;@Luck&gt;''' lol [15:25] '''&lt;@Luck&gt;''' careful [15:25] '''&lt;@Luck&gt;''' it will kick you [15:25] '''&lt;@AknorJaden_&gt;''' well duh! [15:25] '''&lt;@Luck&gt;''' and you won't be able to log back into unban yourself [15:25] '''&lt;@Luck&gt;''' so you'll have to edit your db [15:25] '''&lt;@AknorJaden_&gt;''' ah, but i can use phpmyadmin! [15:25] '''&lt;@Luck&gt;''' fair enough [15:25] '''&lt;@AknorJaden_&gt;''' hehe [15:26] '''&lt;@Luck&gt;''' you should read the announcement on the forums about it [15:26] '''&lt;@AknorJaden_&gt;''' oh, hey that reminds me...eve-server isn't coded to take advantage of multi-core processors is it? [15:27] '''&lt;@AknorJaden_&gt;''' brb [15:29] '''&lt;@Luck&gt;''' umm not really [15:33] '''&lt;@Luck&gt;''' k guys, i g2g deal with some rl shit [15:33] '''&lt;@Luck&gt;''' i'll ttyl [15:33] *** Luck has quit IRC: [MF] Quit: Leaving [15:34] '''&lt;@AknorJaden_&gt;''' or for that matter, eve-server definitely doesn't run on a server farm either, eh? ----- # client sends packet to server # packet received by TCP section # received packets are sent to PyDispatcher # PyDispatcher looks at packet info to figure out what service to call ## the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function 5161b7d9a66db25adebdea9f412a25eda398e34e 220 219 2021-04-04T02:00:14Z DarksHeiress 7 wikitext text/x-wiki == <span id="EVEmu_eve-server_project" class="mw-headline"> '''EVEmu eve-server project''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to write code for it is already in place in the other projects. <br /> == <span id="eve-server.cpp" class="mw-headline"> '''eve-server.cpp''' </span> == This project contains the single most important file in the entire solution: '''eve-server.cpp'''. (it's named &quot;eve-server&quot; for a reason :) ). eve-server.cpp contains the primary loop of the server, which, while the server is running, performs the following tasks: # Initialize logging, read configuration, connect to database # Start API and Image servers # Create various [[#System-Wide_Resources|system-wide resource objects]] # Register all [[#Service_Managers|services]] # Create game memory objects: [http://wiki.evemu.dev/index.php?title=Category:Item_Factory&action=edit&redlink=1 Item Factory], [[Category_Module_Manager.html|Module Manager]] effects &amp; info tables # LOOP: ## Check for incoming packets on the TCP connection ## If there is an incoming packet, decode it ## Make the appropriate response ## Send the response to the client that sent the request ## Scan through entire [http://wiki.evemu.dev/index.php?title=Category:Entity_List&action=edit&redlink=1 Entity List] for any items that need actions taken (modules changed, timers expired, etc) ## Scan through entire list of [[#Service_Managers|services]] to process any actions pending ## Monitor for Ctrl+C server shutdown command # END LOOP # shut down logging, API server, Image server, TCP server # close logfile # Entity List destructor invokes save-off to database of all modified objects That is folks. That's all it does. In fact that's all the entire project does...ever. All of your coding that you will more than likely be doing will be focused solely on number 3. 1, 2, and 4 are pretty much done, and unless you're doing some serious revision of the entire server structure, or just like breaking things, you'll probably never touch them. Fortunately for you, 3 covers an immense amount of code. In fact, it is almost all of the server code. Basically, number 3 is broken into various service managers. Service Managers are discussed later in this article. So that is basically how the eve server in its entirety functions. A call is received from the client, processed by the appropriate service manager/service, and a response is sent. During that time, all manner of things can happen. The general structure of the code is as follow: Service Managers and their associated services are found in code files called SomethingService.cpp or SomethingServiceMgr.cpp. Anything that requests information from the evemu database is found in code files named SomethingDB.cpp. Things just named Something.cpp contain data structures and the actual code behind a service call. What you will usually see is that the service call, like Handle_Add, will have statements to make sure that it can decode the arguments passed to it by the client. Once that is affirmed, the Handle_Something function will usually call a (usually protected) function that actually executes whatever the service is supposed to do. The rest of the stuff are helper functions, such as packet decodes, query formatters and so on. Here is pseudocode of what eve-server.cpp does and what happens inside: <pre>At start-up, print splash info on Copyright, licensing, EvE client version Set current time Load server configuration from local eve-server.xml via eve-server &gt; EVEServerConfig Load server log settings from local log.ini via common? &gt; LogNew Connect to evemu mysql database using info from local eve-server.xml via common? &gt; DBcore Create the DGM Type Attribute Manager via eve-server &gt; dgmtypeattributemgr Start the TCP server via eve-common &gt; EVETCPServer -and- common? &gt; TCPServer Make the Item Factory via eve-server &gt; ItemFactory Create the main Service Manager via eve-server &gt; PyServiceMgr Create the Command Dispatcher object via eve-server &gt; CommandDispatcher Register all commands via eve-server &gt; AllCommands.h Register all services (see the List of Service Managers below for a complete list) via eve-server &gt; PyServiceMgr Cache Database Tables using Object Cache Service via eve-server &gt; ObjCacheService Set Server to ONLINE via eve-server &gt; PyServiceMgr ENTER MAIN LOOP: ----Set current time and Get tick count ----Check TCP Server's TCP connection stack for the presence of any new TCP connections from EvE clients ----Add new TCP connection from the TCP Server's TCP connection stack onto the Entity list (list of clients connected to evemu server) ----via eve-server &gt; EntityList &gt; Add() ----Process Entity List - run through list of all Clients connected to evemu server ----via eve-server &gt; EntityList &gt; Process() ----Process Service List - run through list of all services registered with PyServiceMgr? ----via eve-server &gt; PyServiceMgr ----Get tick count again, calculate remaining time for thread sleep and SLEEP that time using Sleep() ----IF Server receives SHUTDOWN signal (Ctrl-C, I think), EXIT MAIN LOOP END LOOP Close TCP Server Set Server to OFFLINE Close Log file EXIT MAIN - ends program execution</pre> === <span id="System-Wide_Resources" class="mw-headline"> System-Wide Resources </span> === eve-server contains many &quot;singleton&quot; objects that have exactly one and only one instance throughout the entire server. These objects are singular resources for system-wide access and functions that anything anywhere in the server code base may need access to for various reasons, such as posting a log message to the main server log, accessing the server's database connection to the [http://wiki.evemu.dev/index.php?title=Category:EVEmu_Database&action=edit&redlink=1 EVEmu Database], or any number of in-memory database objects for the [http://wiki.evemu.dev/index.php?title=Category:ModuleManager&action=edit&redlink=1 Module Manager] or other critical services in the code base. Here is a list of the current system-wide singleton objects available anywhere in the codebase using the shown mnemonic: {| ! Service Object Mnemonic ! Description |- | sMarshalStringTable | |- | sDatabase | |- | sLog | |- | sAPIServer | |- | sImageServer | |- | sDGM_Effects_Table | |- | sDGM_Skill_Bonus_Modifiers_Table | |- | sDGM_Ship_Bonus_Modifiers_Table | |- | sDGM_Implant_Bonus_Modifiers_Table | |- | (other ModuleManager related sDGM_XXXXX_Table objects go here) | |- | sEntityList | |- | sConfig | |- | sLiveUpdateDB | |} === <span id="Service_Managers" class="mw-headline"> Service Managers </span> === When the client sends a request to the server, it first sends the service manager name, and then the name of the service, along with a additional arguments like itemID's clientID's...you get the picture. The server decodes the service manager name, then calls upon the appropriate service manager, and passes along the service name and the arguments that go along with it. The service manager takes this and looks through all of the services that it is capable of performing. Once the service has been found, it invokes a new instance of that service, and passes along the arguments, which are processed by the service, and the appropriate response is sent back to the service manager, which sends that to the overall PyServiceManager?, which sends the response to be encoded and send to the TCP connection, where it is the received by the client. If everything went well, you wont see a nice little message called &quot;BeanCount?&quot; pop up in your server window ( unlikely ). If you do, you screwed up somewhere( very likely :D ). Now, there are service managers for just about everything you can think of. There's a Character service manager, Ship service manager, Certificates service manager, Module service manager, NPC service manager... basically any element in the game that actually DOES anything has a service manager associated with it, because besides service calls, the only thing the client ever sends to the server is errors...which, wait for it...call a service called BeanCount?. There's even a service manager for service managers, called PyServiceMgr?, which handles dispatching service calls from the client to the right service manager. So basically, if you want to figure out why something in the game doesn't work, you need to know 2 things: the service manager name and the service name itself. ==== <span id="Working_with_Service_Managers" class="mw-headline"> Working with Service Managers </span> ==== Tip: if your implementing a service, to register it with a service manager, you need to use a function called PyCallable_REG_CALL( service manager name, serivce name) otherwise the service manager won't know about your shiny new service :) Tip: you usually don't need the service manager name though, as you can just search the solution for Handle_[service name] since no two service calls have the same name, or if they do, it will become very apparent that one of them is not what your looking for. For instance, if the client calls Add, and you look for Handle_Add, you may run into a Handle_Add, and realize its under the character creation service manager. Obviously, as it was called when you moved an item into your inventory, this is not what your looking for. Instead you should be looking for something in the InventoryItem? manager or something similar. '''List of Service Managers''' NOTE: This list shows all Service Managers registered with the EVEmu Server as of revision 952 of the experimental branch TODO: Add one-line descriptions for all service managers '''ClientStatsMgr''' '''AgentMgrService''' '''MissionMgrService''' - manages player interaction with player missions / giving players missions, accepting, declining, etc '''AccountService''' '''UserService''' '''AlertService''' '''AuthService''' '''BillMgrService''' '''BookmarkService''' - manages player interaction with Bookmarks in all ways, creation, deletion, usage, conversion to cargo item, etc. '''CertificateMgrService''' - manages player interaction with the Certificates Manager interface, including browsing and awarding of certificates '''CharacterService''' '''CharMgrService''' '''ConfigService''' '''LanguageService''' '''CorpMgrService''' '''CorpStationMgrService''' '''CorporationService''' - manages player interaction Corporation - make corp, dissolve, manage roles of corp members, EVERYTHING in Corp Management window, etc... '''CorpRegistryService''' - manages player interaction players registration of the corporation '''LPService''' - manages player interaction with loyalty points, which he has for certaion faction ingame '''DogmaIMService''' '''InvBrokerService''' '''LSCService''' - Large Scale Chat service '''ObjCacheService''' '''LookupService''' - handles requests to lookup various in-game items, solar systems, characters, corporations and provide an orange auto-link to those resources in the client chat window '''VoiceMgrService''' - manages player interaction EVE in-game voice '''ShipService''' '''InsuranceService''' - manages player interaction with the Eve Ship Insurance and stored insurance contracts in the database '''BeyonceService''' '''MapService''' '''OnlineStatusService''' '''Standing2Service''' '''WarRegistryService''' '''FactionWarMgrService''' '''StationService''' - manages player interaction with bounty, insurance, clone, agents, owerall everthing what can be found in the station '''StationSvcService''' '''JumpCloneService''' - manages player interaction with Jump Clones '''KeeperService''' '''DungeonService''' '''SkillMgrService''' - manages player interaction with the Eve Skills browser and training queue '''TutorialService''' - manages player interaction with the Eve Tutorials '''PetitionerService''' - manages player interaction with petition service from the game master to the player '''SlashService''' '''MarketProxyService''' - this manages the entire Market experience in Eve, anything to do with the Market is done in here (buy orders, sell orders, history, etc) '''ContractMgrService''' - this manages the entire Contracts market in Eve, including Want-to-Sell contracts, Want-to-Buy contracts. Auction contracts, Corporation contracts, and player to player contracts '''ReprocessingService''' - this manages everything to do with using Reprocessing services inside stations '''FactoryService''' - this manages everything to do with Manufacturing items and ships using Industry services inside stations or at POS's with appropriate modules '''RamProxyService''' '''PosMgrService''' - this manages everything to do with Player Owned Stations (POS), shields, automatic defenses, fuel consumption, etc. '''NetService''' '''TradeService''' '''charUnboundMgr''' '''Missing Services ????''' <br /> '''This is a list of service managers that have not even been created to handle parts of the game:''' <pre>ScanMgrService - handles the use of the system scanner and scan probes deployed within a solar system Asteroid Belt spawn service ?? Rat spawn service (could this be the DungeonService? ??) - this would include wormhole rats (Sleepers) as well Wormhole spawn service GangMgrService - handles the interaction and collaboration of multiple players through Fleets Sovereignty service Planetary Management service</pre> === <span id="Major_Game_Features_and_their_Sections_in_eve-server" class="mw-headline"> Major Game Features and their Sections in eve-server </span> === Major Game Feature Description Account? Handles account services Character? Handles services and functions related to EVE characters Chat? Handles services and functions related to Chat and EVEmail Corporation? Handles services and functions related to Corporations Inventory? Handles services and functions related to Items, Attributes, Inventory, etc Manufacturing? Handles services and functions related to Manufacturing Map? Handles services and functions related to the EVE universe map Market? Handles services and functions related to the in-game Market Mining? Handles services and functions related to Mining Missions Handles services and functions related to Agents and Missions NPC Handles services and functions related to NPCs POSMgr Handles services and functions related to POS stations Scanning Handles services and functions related to System and Scan Probe Scanning of solar systems Ship Handles services and functions related to Ships, Destiny, Insurance, Modules, Combat, Targeting Spawn? Handles services and functions related to Spawning NPC rats, Asteroid belts, Wormholes, etc Standing? Handles services and functions related to Standings of all kinds, Faction War, Player War Station Handles services and functions related to Station Services System Handles services and functions related to Systems, Dungeons, Celestial objects, Bubble manager, Bookmarks, Scenarios, Solar systems, etc Trade? Handles services and functions related to Inter-player Trading inside stations Tutorial? Handles services and functions related to Tutorials Client? Handles services and functions related to user Clients ClientSession? Handles services and functions related to user Client sessions EVEmu Coding Aids === <span id="Global_Constants_Structures" class="mw-headline"> Global Constants Structures </span> === The constants structures listed below are manually created from queries on the mysql database tables, so when changes are made to the database in these areas, these constants structures would need to be updated. Some of these structures are incomplete and need to be completed. /eve-common/tables/invCategories.h - EVEDB::invCategories:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invCategories' database table as constants that can be used for whatever you need /eve-common/tables/invGroups.h - EVEDB::invGroups:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all entries in the 'invGroups' database table as constants that can be used for whatever you need /eve-common/network/packet_types.h - EVEItemFlags:: - type this in a source file in Visual Studio to get an Intellisense drop-down box listing all possible values that can be used in the flag field of an inventory item listed in the 'entity' table /eve-common/tables/invCategories.h - other constants structures listed in this file include MACHONETMSG_TYPE, MACHONETERR_TYPE, EVEItemType (this is incomplete), EVEItemChangeType, EVEContainerTypes, EVERookieShipTypes, EVESkillID (this is incomplete), EVEItemTypeID (this is incomplete), EVERace, EVEStandingEventTypeID, an enum containing account roles with ROLE_ prefixes, a group of Corporation Role flags as static const types and some combinations that are useful such as corpRoleAll that grants all roles, or corpRoleAllContainer that grants access to all corporation containers, EVEEffectID, JournalRefType?, EVEAccountKeys, fmtMappingType, EffectCategories? There are also a number of itemID value range checking functions to determine if an itemID found in the entity table is an Agent, or a Stargate, or other specific things. IsAgent?(), IsStaticMapItem?(), IsRegion?(), IsConstellation?(), IsSolarSystem?(), IsUniverseCelestial?(), IsStargate?(), IsStation?(), IsTrading?(), IsOfficeFolder?(), IsFactoryFolder?(), IsUniverseAsteroid?(), IsScenarioItem?() Object Oriented Design of the EVEmu Server The entire EVEmu server is designed with an object-oriented method. Whether the current implementation is good enough is not the subject of this section, but rather to simply document what that design is. The EVE universe is a single galaxy comprised of Solar Systems, all linked by stargates. Each Solar System contains a Star, planets, moons, stations, and other celestial objects. They also contain ships flown by pilots and ships spawned by the Server, NPC ships belonging to the many legit NPC Corporations or Pirate organizations. CLASS: EntityList - The TOP Object EVEmu's top object is the EntityList?, found in include/eve-server/EntityList.h. This class is a Singleton and so only ONE instance exists. It contains a protected member variable system_list m_systems. This list contains ALL Solar System objects that exist in the universe. It is a std::map&lt;&gt; construct with a uint32 key value and a SystemManager? secondary value. The EntityList? object also contains a list of all clients connected to the EVEmu server via a protected member variable client_list m_clients, which is a std::list&lt;&gt; containing the Client * reference pointers for all clients connected to the server. Important Methods Add(Client client) - call this passing in a pointer to a pointer of a Client object to add clients to the EntityList? FindOrBootSystem?(uint32 systemID) - call this passing in a uint32 value equal to the solarSystemID from the mapDenormalize table in order to either Find or Boot that solar system. If the referenced solar system has not had its own SystemManager? object created yet since server start, this function will do that, otherwise, the pointer to the referenced solar system SystemManager? object that already exists will be returned. Broadcast(), Multicast(), Unicast() - These broadcast functions are ways to call Client::SendNotification?() on one or more Client objects referenced in the m_clients list. FindCharacter?(), FindByShip?(), FindAccount?(), FindByStation?(), FindByRegion?() - These functions serve to find Client reference pointers using characterID, characterName, shipID, accountID, stationID, or regionID, the last two return a std::vector&lt;&gt; list of Client reference pointers. Warning: Each of these Find functions make use of simple for() loop search methods, so with very largely populated EVE universes, these functions could potentially take a long time to execute, so make very sparse use of them. Consider strongly a more efficient way of finding the Client object of some character or ship piloted by a character BEFORE resorting to using these functions. CLASS: SystemManager? The SystemManager? class, found in eve-server/system/SystemManager, is the next class object down in the hierarchy, which manages each Solar System. So, as characters log into the server, they enter the game world in specific Solar Systems and if those systems have not been created yet, a SystemManager? object for each of them is created and stored in a list inside the EntityList? as mentioned above. This class object contains a number of things localized to a Solar System and they include a SystemEntity? list in the form of a std::map&lt;&gt; that holds pointers to SystemEntity? objects, each of which are references to objects that exist in that Solar System, a systemID value, a systemName value, a systemSecurity value, its own SpawnManager? object, and its own SystemDB object providing access to the database. NOTES: Much work is needed to manage Asteroid Belt, NPC ship/fleet, Cosmic Anomaly, and Cosmic Signature spawning in each Solar System. It may be that the SpawnManager? object owned by each SystemManager? object will take care of these spawnings, but the SpawnManager? objects need entries in the 'spawns' and 'spawnGroups' tables in the Database. NPC ships/fleets need targets when they spawn, especially when a ship warping to a location within a solar system triggers a spawn, as would happen when entering the grid of a Cosmic Signature marking a complex, or an Asteroid Belt spawning rats. So, the SystemManager? should be expanded to hold a list of ships in space, perhaps, and not just a list of SystemEntities?, however, more research into the SystemEntities? classes are necessary to see if scouring the list of those in a solar system, held by the m_entities protected variable will work as a means for a particular NPC ship/fleet to gather a list of targets in its immediate vicinity. CHANGES It has been proposed that we make several std::map protected member variables along with Add(), Get(), Find(), and Remove() support functions to separate out different kinds of SystemEntity? objects, such as ships in space, cargo containers, POS modules, drones, NPC ships, asteroids, cosmic signatures and anomalies, and other dynamic objects Use simple array objects for static objects like NPC stations, stars, planets, moons, stargates This will make it easier to get lists of targets for NPC ship engagements Important Methods BootSystem?() - This loads the solar system celestials via the _LoadSystemCelestials() call and loads the system dynamics via the _LoadSystemDynamics() call. There is also code here that loads all spawns and fires up the initial spawn via the SpawnManager?, however, this code is commented out with a note that it makes the &quot;client angry&quot;. More research is needed to find out what's going wrong, if anything. ProcessDestiny?() - This is called once for each Destiny second. More research is needed to determine exactly what this does. AddClient?() - Add a client to the list of SystemEntity? objects. This would be done if a pilot's ship jumps into this solar system either with a jump capable ship or a stargate. RemoveClient?() - Removes a client from the list of SystemEntity? objects. This would be done if a pilot's ship jumps out of this solar system either with a jump capable ship or a stargate. AddNPC() - Adds an NPC SystemEntity? to the SystemEntity? list. This would be done when an NPC ship/fleets spawns or is triggered due to a incoming warp to a location where the spawn is located. RemoveNPC() - Removes an NPC SystemEntity? from the SystemEntity? list. This would be done when an NPC ship/fleets is destroyed or de-spawns from a location. AddEntity?() - Adds a generic SystemEntity? object to the list of SystemEntity? objects. RemoveEntity?() - Removes a generic SystemEntity? object from the list of SystemEntity? objects. CLASS: SystemEntity? Found in eve-server/system/SystemEntity.h ABSTRACT CLASS : NO INSTANCES ALLOWED TBD Important Methods TBD CLASS: ItemSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: DynamicSystemEntity? derived from ItemSystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntity.h CLASS: InanimateSystemEntity? derived from SystemEntity? ABSTRACT CLASS : NO INSTANCES ALLOWED Found in eve-server/system/SystemEntities.h CLASS: SimpleSystemEntity? derived from InanimateSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemPlanetEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStationEntity? derived from SimpleSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemStargateEntity? derived from SystemStationEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemSimpleEntity? derived from SystemPlanetEntity? Found in eve-server/system/SystemEntities.h CLASS: SystemDungeonEntranceEntity? derived from ItemSystemEntity? Found in eve-server/system/SystemEntities.h CLASS: tbd Found in ??? == <span id="Conversations_with_Luck_on_eve-server" class="mw-headline"> Conversations with Luck on eve-server </span> == [14:41] '''&lt;@AknorJaden_&gt;''' well, i've been trying to look at different sections of the eve-server to fix little problems like undocking, chats, etc. but i haven't been able to make sense of the API between the service managers and the eve-common stuff that receives, decodes packets, then encodes and sends packets back to the clients [14:42] '''&lt;@Luck&gt;''' okay [14:42] '''&lt;@Luck&gt;''' everything is organized into different types of calls [14:42] '''&lt;@AknorJaden_&gt;''' i guess it's just that there is SO much stuff [14:42] '''&lt;@AknorJaden_&gt;''' yeah saw that [14:42] '''&lt;@Luck&gt;''' lol [14:42] '''&lt;@Luck&gt;''' each call is expecting a different way to decode the packets [14:43] '''&lt;@Luck&gt;''' so you declare the object from eve-common [14:43] *** DanTheBanjoman has joined #evemu [14:43] *** ChanServ sets mode +o DanTheBanjoman [14:43] '''&lt;@AknorJaden_&gt;''' ok, but I bet there isn't some kind of class diagram for all the object classes in the code base, is there? [14:43] '''&lt;@Luck&gt;''' call decode on the packet [14:43] '''&lt;@Luck&gt;''' sure there is [14:43] '''&lt;@AknorJaden_&gt;''' really? [14:43] '''&lt;@Luck&gt;''' all of those packet decoding is generated from xml files by the xmlpacketgen project [14:43] '''&lt;@AknorJaden_&gt;''' yeah, i figured that out at the highest level [14:44] '''&lt;@AknorJaden_&gt;''' those xmlp files get run through xmlpktgen to create the .h files [14:44] '''&lt;@Luck&gt;''' yea [14:45] '''&lt;@Luck&gt;''' so you look at those xml files [14:45] '''&lt;@AknorJaden_&gt;''' do understand the packet structure, eh? [14:45] '''&lt;@Luck&gt;''' and you get an idea of what each call does [14:45] '''&lt;@Luck&gt;''' ? [14:45] '''&lt;@Luck&gt;''' do i? [14:45] '''&lt;@AknorJaden_&gt;''' no, lol [14:45] '''&lt;@AknorJaden_&gt;''' i meant &quot;to&quot;, not &quot;do&quot; [14:45] '''&lt;@Luck&gt;''' oh [14:46] '''&lt;@Luck&gt;''' yes [14:46] '''&lt;@AknorJaden_&gt;''' ok [14:46] '''&lt;@Luck&gt;''' they were all determined by packet sniffing [14:48] '''&lt;@AknorJaden_&gt;''' ok [14:48] '''&lt;@Luck&gt;''' so what else do you want to know? [14:48] '''&lt;@AknorJaden_&gt;''' lol....everything ;) [14:49] '''&lt;@AknorJaden_&gt;''' maybe i should start from the top: packets come in from the client and are received where? [14:50] '''&lt;@Luck&gt;''' the TCP connection [14:50] '''&lt;@AknorJaden_&gt;''' oh right [14:50] '''&lt;@Luck&gt;''' :) [14:50] '''&lt;@Luck&gt;''' they are passed to the PyDispatcher [14:51] '''&lt;@AknorJaden_&gt;''' ah [14:51] '''&lt;@Luck&gt;''' which looks at the information contained in the packet that says which service the client is calling [14:51] '''&lt;@AknorJaden_&gt;''' ok, starting to make sense [14:52] '''&lt;@AknorJaden_&gt;''' so then it calls that appropriate service, right, such as LSCService for chats/mails? [14:52] '''&lt;@Luck&gt; the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function''' [14:52] '''&lt;@Luck&gt;''' yes [14:52] '''&lt;@Luck&gt;''' and LSCService looks to see if it has a function to handle the particular call [14:52] '''&lt;@Luck&gt;''' like Handle_SendMessage [14:53] '''&lt;@Luck&gt;''' time to commit [14:53] '''&lt;@AknorJaden_&gt;''' ok [14:55] '''&lt;@AknorJaden_&gt;''' got it [14:59] '''&lt;@AknorJaden_&gt;''' so now that the packet has called the right function in the right service, how does the packet info get used (is it the &quot;args&quot; object) and then there's the use of that info to do whatever the function called is supposed to do [14:59] '''&lt;@Luck&gt;''' you notice that every function called Handle_Something [15:00] '''&lt;@AknorJaden_&gt;''' yeah, lot's of those, but not all [15:00] '''&lt;@Luck&gt;''' i mean [15:00] '''&lt;@AknorJaden_&gt;''' nevermind, pretty much all of em [15:00] '''&lt;@Luck&gt;''' every function that has a name like that has the same argument [15:00] '''&lt;@Luck&gt;''' PyCallArgs &amp;args [15:00] '''&lt;@AknorJaden_&gt;''' yeah, i was just about to type that [15:01] '''&lt;@Luck&gt;''' not all of them ( there are a few exceptions) but almost all [15:01] '''&lt;@Luck&gt;''' the first part of the function will declare a call object [15:01] '''&lt;@AknorJaden_&gt;''' and the value &quot;call&quot; is polymorphic, right? where PyCallArgs is some kind of base class for all packets? [15:01] '''&lt;@Luck&gt;''' Call_SendMessage args; [15:02] '''&lt;@Luck&gt;''' then you use that Call object to decode the PyCallArgs&amp; call [15:02] '''&lt;@Luck&gt;''' args.Decode( call.tuple ) [15:02] '''&lt;@Luck&gt;''' once you do that, the args object will have the appropirate information in it [15:02] '''&lt;@AknorJaden_&gt;''' now, what is the call.tuple? [15:02] '''&lt;@AknorJaden_&gt;''' or don't i care at this point? [15:02] '''&lt;@Luck&gt;''' call is the PyCallArgs object argument passed to the function [15:03] '''&lt;@Luck&gt;''' and call.tuple means to decode the tuple inside the PyCallArgs object [15:03] '''&lt;@AknorJaden_&gt;''' oh, right, duh. why the tuple attribute? how come that's not private. aren't most data members of a class supposed to be private? [15:03] '''&lt;@AknorJaden_&gt;''' ok [15:03] '''&lt;@Luck&gt;''' not ones that we want to acces [15:03] '''&lt;@Luck&gt;''' :) [15:04] '''&lt;@AknorJaden_&gt;''' call-&gt;getTuple() wouldn't be better? [15:04] '''&lt;@AknorJaden_&gt;''' not so encapsulated [15:04] '''&lt;@Luck&gt;''' in some respects yes [15:04] '''&lt;@AknorJaden_&gt;''' ok [15:10] '''&lt;@AknorJaden_&gt;''' so, then i guess the rest of the story is to go some place in the code to understand *what* is in the args object once it's been decoded, and then start using that info? [15:11] '''&lt;@Luck&gt;''' it goes to figure out what is in the call object [15:11] '''&lt;@Luck&gt;''' PyCallArgs &amp;call [15:11] '''&lt;@AknorJaden_&gt;''' what does, the .Decode() method? [15:11] '''&lt;@Luck&gt;''' args is the result of the decoded call [15:11] '''&lt;@AknorJaden_&gt;''' ok [15:12] '''&lt;@Luck&gt;''' args can then be used normally [15:13] '''&lt;@Captnoord&gt;''' re [15:14] '''&lt;@AknorJaden_&gt;''' ok, so args is an object that has data structures inside that contains info for the function called? [15:14] '''&lt;@Captnoord&gt;''' AknorJaden: the reason for the objects not to have them protected is because of the packet code generator [15:14] '''&lt;@AknorJaden_&gt;''' you mean xmlpktgen? [15:14] '''&lt;@Captnoord&gt;''' yup [15:14] '''&lt;@AknorJaden_&gt;''' ok [15:14] '''&lt;@Captnoord&gt;''' which is a piece of shit [15:15] '''&lt;@AknorJaden_&gt;''' LOL [15:15] '''&lt;@Luck&gt;''' hahaha [15:15] '''&lt;@Luck&gt;''' he's right [15:15] * @Luck waves a Captnoord [15:15] '''&lt;@AknorJaden_&gt;''' it's ok. i'm no OOD expert, but i do undedrstand encapsulation [15:16] * @Captnoord waves back..... [15:17] '''&lt;@Captnoord&gt;''' hmmm my girl offers me something I can't ignore..... [15:17] '''&lt;@Captnoord&gt;''' crap... [15:17] '''&lt;@Captnoord&gt;''' :P [15:17] '''&lt;@AknorJaden_&gt;''' dude, what are you waiting for ....GO [15:19] '''&lt;@Luck&gt;''' lol [15:19] '''&lt;@Luck&gt;''' gtfo of here man [15:19] '''&lt;@AknorJaden_&gt;''' so, luck, when i am in the LSCService, i need to go look at the xmlp files (or more appropriately, the .h files) to find out what stuff is in the decoded args object? [15:19] '''&lt;@Luck&gt;''' that's one way yes [15:20] '''&lt;@AknorJaden_&gt;''' ok, is there an easier way? [15:20] '''&lt;@Luck&gt;''' start typing args. [15:20] '''&lt;@Luck&gt;''' and see what intellisense tells you is available [15:20] '''&lt;@Luck&gt;''' :) [15:20] '''&lt;@Luck&gt;''' not always accurate though [15:20] '''&lt;@AknorJaden_&gt;''' where, in the function i'm in? [15:20] '''&lt;@Luck&gt;''' yea [15:21] '''&lt;@Luck&gt;''' your better off looking at the Decode() function for that particular call though [15:21] '''&lt;@Luck&gt;''' oh [15:21] '''&lt;@Luck&gt;''' if anyone is interested, new commit to the exp branch [15:21] '''&lt;@AknorJaden_&gt;''' ok, thanks for the tip. but am i right about going to the .h files under eve-common\include\packets for the source? [15:21] '''&lt;@Luck&gt;''' no.. [15:21] '''&lt;@Luck&gt;''' go to the .cpp files [15:22] '''&lt;@Luck&gt;''' well i guess you could go to the .h files [15:22] '''&lt;@AknorJaden_&gt;''' so, eve-common\src\packets ? [15:22] '''&lt;@Luck&gt;''' i guess [15:22] '''&lt;@Luck&gt;''' i look at it in VS [15:22] '''&lt;@Luck&gt;''' structure is slightly different [15:22] '''&lt;@Luck&gt;''' wait [15:23] '''&lt;@AknorJaden_&gt;''' yeah, that's what i meant. i look at the .h and .cpp files in VS [15:23] '''&lt;@Luck&gt;''' nvm [15:23] '''&lt;@Luck&gt;''' kk [15:23] '''&lt;@Luck&gt;''' yea [15:23] '''&lt;@Luck&gt;''' eve-common/src/packets [15:23] '''&lt;@Luck&gt;''' the ability to ban accounts from the server has been added [15:23] '''&lt;@Luck&gt;''' exp branch rev 975 [15:23] '''&lt;@Luck&gt;''' *974 [15:25] '''&lt;@AknorJaden_&gt;''' cool, i can ban myself from my own solo server LOL [15:25] '''&lt;@Luck&gt;''' lol [15:25] '''&lt;@Luck&gt;''' careful [15:25] '''&lt;@Luck&gt;''' it will kick you [15:25] '''&lt;@AknorJaden_&gt;''' well duh! [15:25] '''&lt;@Luck&gt;''' and you won't be able to log back into unban yourself [15:25] '''&lt;@Luck&gt;''' so you'll have to edit your db [15:25] '''&lt;@AknorJaden_&gt;''' ah, but i can use phpmyadmin! [15:25] '''&lt;@Luck&gt;''' fair enough [15:25] '''&lt;@AknorJaden_&gt;''' hehe [15:26] '''&lt;@Luck&gt;''' you should read the announcement on the forums about it [15:26] '''&lt;@AknorJaden_&gt;''' oh, hey that reminds me...eve-server isn't coded to take advantage of multi-core processors is it? [15:27] '''&lt;@AknorJaden_&gt;''' brb [15:29] '''&lt;@Luck&gt;''' umm not really [15:33] '''&lt;@Luck&gt;''' k guys, i g2g deal with some rl shit [15:33] '''&lt;@Luck&gt;''' i'll ttyl [15:33] *** Luck has quit IRC: [MF] Quit: Leaving [15:34] '''&lt;@AknorJaden_&gt;''' or for that matter, eve-server definitely doesn't run on a server farm either, eh? ----- # client sends packet to server # packet received by TCP section # received packets are sent to PyDispatcher # PyDispatcher looks at packet info to figure out what service to call ## the dispatcher passes the packet to the required service, and the service dispatcher reads the particular call to it, and if it has a function registered to handle that call, it calls that function d8ae6682893c0fcc8c0179136f223533cdd67c1d The EVEmu Guide 0 160 221 211 2021-04-04T02:01:44Z DarksHeiress 7 wikitext text/x-wiki == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[Xmlpktgen|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Eve-xmlpktgen.html|eve-xmlpktgen]]''' </span> == The XML Packet Generator (eve-xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''[[Category_EVEmu_Tools.html|EVEmu Server Support Tools]]''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what your doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development, but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool.html|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. c8043f5b4dd3e5e6680d6b625d59b1d947487f4b 222 221 2021-04-04T02:02:35Z DarksHeiress 7 wikitext text/x-wiki == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[Xmlpktgen|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Xmlpktgen|Xmlpktgen]]''' </span> == The XML Packet Generator (xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''[[Category_EVEmu_Tools.html|EVEmu Server Support Tools]]''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what your doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development, but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool.html|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. 59b3d98bf3283099fad8b77ea0cdf3de151c4594 223 222 2021-04-04T02:03:06Z DarksHeiress 7 wikitext text/x-wiki == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[Xmlpktgen|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Xmlpktgen|Xmlpktgen]]''' </span> == The XML Packet Generator (xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''[[Category_EVEmu_Tools.html|EVEmu Server Support Tools]]''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what your doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development, but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. 245a03c7699c633a9552dc49f0e828ca466d8407 226 223 2021-04-04T02:07:07Z DarksHeiress 7 wikitext text/x-wiki == <span id="Purpose_and_Status" class="mw-headline"> '''Purpose and Status''' </span> == Okay, so the idea of this is to give people an understanding of how the evemu solution as a whole functions, all the way down to the individual components of the source code. I plan on breaking it down by project, then by source code files, and eventually by functions (but don’t hold your breath). Also, I will probably complete these out of order as the section I write about depends completely up how much work I feel like doing at the time, my amount of free time, and most importantly, which section I am currently applying fixes to. So far, though, we have executive summaries of the top blocks of the code base and these are presented below. == <span id="At_a_glance" class="mw-headline"> '''At a glance''' </span> == When you first open the solution, you are immediately bombarded with a huge number of source code files, many of which functions are not quickly discernible. Their general function may be apparent, such as LookupService?.cpp, which handles calls to the server that request a database query from the player, such as ‘Find all characters of xyz name’ or ‘Find station named ‘abc’'. However, how it actually performs this, and what other functions and files it calls upon to do this may not be as easy to determine. The EVEmu solution is broken into 6 parts as listed below. * [[Eve-common.html|eve-common]] * [http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core] * [[Eve-server.html|eve-server]] * [[Eve-tool|eve-tool]] * [http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test] * [[Xmlpktgen|xmlpktgen]] Each one of these parts handles various functions and, when compiled together, they form the evemu server. The solution is essentially organized as follows. Everything except the eve-server project is compiled for the explicit reason of compiling the eve-server. The eve-server project is the only one that produces an actual executable file. All of the others contain service and function dependencies that are used by the eve-server. == <span id="eve-core" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-core&action=edit&redlink=1 eve-core]''' </span> == The eve-core project handles parsing and executing database queries, logging system events, all packet collection and dissemination, the actual server connection, and resource locking, also known as mutex (short for mutual exclusion). While you may not realize it at first, the eve-core project is vital for the ability of this project to compile cross platform. Besides containing most of the include files necessary for compilation like ctime, cassert, etc, it includes a large number of custom type definitions that allow the same code to compile on both platforms. For example, uint32 is not a recognized identifier in Visual Studio. Instead you have to use unsigned _int32. To simplify this, a typedef is used, so that Visual Studio interprets uint32 as unsigned _in32. The same is done for linux systems, but instead of unsigned _in32, its uint32_t typedef'd to uint32. Though this, and many other definitions and preprocessor directives, the entire solution is able to compile on both unix based and windows systems. The eve-core project also contains the utility functions and classes that are used many times in the other projects, such as classes for string manipulation (found in utils_string.h) == <span id="eve-common" class="mw-headline"> '''[[Eve-common.html|eve-common]]''' </span> == The eve-common project handles, among many things, object caching, query result formation, Client Connection Sessions, Packet encoding, Packet Typecasting, and a multitude of error reporting. The eve-common project is necessary for the eve-server project to function as a server. It contains almost all of the support functions that allow the eve-server project to handle calls from the client, along with how to format responses, manage cached objects, and talk with the database. As explained in the previous section, the eve-server receives a call from the client, and from that call sends the arguments off to the correct service manager which calls the appropriate service, does whatever it needs to do, and returns the response to the client. However, there is a lot that goes on between the call being received and the arguments being sent to the appropriate service manager. See the main article for more information. == <span id="eve-server" class="mw-headline"> '''[[Eve-server.html|eve-server]]''' </span> == The eve-server is the primary executable. This project contains the actual program loop during which all server functions are performed. It also contains the code to create those services, that handle everything from docking, to warping, to the market. Probably the most integral part of the evemu source code, the eve-server is where those of you who decide to add to the source code will spend the majority of your time. First off, this is the only one of the projects that actually compiles into anything that we actually use. Some may say that makes it the most important, but all I'll say about it is that it makes it the easiest to work with, because all of the framework necessary to code in it is already in place in the other projects. == <span id="eve-test" class="mw-headline"> '''[http://wiki.evemu.dev/index.php?title=Eve-test&action=edit&redlink=1 eve-test]''' </span> == Our unit testing framework. == <span id="eve-xmlpktgen" class="mw-headline"> '''[[Xmlpktgen|Xmlpktgen]]''' </span> == The XML Packet Generator (xmlpktgen) project handles all of the XML packets (decoding, constructing, encoding etc…) used by the server. It takes xml-like structures in xmlp files underneath '''src/eve-common/packets/xmlp''' and creates C++ classes for each of the structures. Those classes are then used by eve-server internal classes and functions for decoding packets received by the server and encoding packets sent by the server. == <span id="EVEmu_Server_Support_Tools" class="mw-headline"> '''EVEmu Server Support Tools''' </span> == The last few projects are much smaller than eve-server, but no less important. Both of these two projects fall under the ones that you shouldn’t mess with unless you really know what you're doing. === <span id="EVEmu_Control_Panel" class="mw-headline"> '''[[EVEmu_Control_Panel.html|EVEmu Control Panel]]''' </span> === At this point, it has been strongly suggested that functions for this EVEmu Control Panel be implemented inside DB Editor. The EVEmu Control Panel is currently an idea that has not started development but would be a tool that provides EVEmu server administrators the capabilities of controlling many various aspects of how their EVEmu server runs. To mention but a few, these could be how asteroid belts spawn, how rats spawn, what kinds and where, how wormholes spawn, what kinds and where, and even more specific interesting changes to the game that the official EVE Online live server will NEVER do, such as make Local chat in ALL solar systems act just as it does inside a wormhole: you can't know who's in-system unless they dock at a station you are currently inside, or they start chatting in Local. Check out the link in the heading to access the main wiki page for this tool and start contributing ideas toward this tool. === <span id="eve-tool" class="mw-headline"> '''[[Eve-tool|eve-tool]]''' </span> === Eve-tool is a fairly small project that contains internal server commands and functions used by the server to interact with the database and other files (log, config etc..). It is useful for decoding packets and other information gathered from the live server. 3275bc4d83f1d753e4e5c641059d2b0f54bec69b EVEmu Control Panel.html 0 164 224 2021-04-04T02:04:14Z DarksHeiress 7 Created page with "= <span id="EVEmu_Database_Tools" class="mw-headline"> EVEmu Database Tools </span> = Since EVEmu is a custom server that interacts with a vast MySQL database, we need tools..." wikitext text/x-wiki = <span id="EVEmu_Database_Tools" class="mw-headline"> EVEmu Database Tools </span> = Since EVEmu is a custom server that interacts with a vast MySQL database, we need tools to work with that database whether the server is running or not. So far, we've got one Database tool and that's '''DB Editor'''. == <span id="EVEmu_Control_Panel" class="mw-headline"> EVEmu Control Panel </span> == EVEmu Control Panel is a rather simple tool created using Visual C# and can be built and debugged using the FREE Microsoft Visual Studio 2010 Express which you can [http://www.microsoft.com/express/downloads/ download here], just install Visual C# 2010 Express. Created by '''Hurracane''', this tool connects the the EVEmu SQL database and provides several ways to interact with and change data stored within the database. These major feature categories are discussed in detail below. [https://www.github.com/evemuproject/evemu_control_panel Get EVEmu Control Panel Source from Github] === <span id="SQL_Settings_-_The_Connection_to_Your_Database" class="mw-headline"> SQL Settings - The Connection to Your Database </span> === ''Development Status:'' '''FULLY OPERATIONAL''' '''Before you do anything with EVEmu Control Panel, you must connect it to your EVEmu database.''' This is done using the '''SQL Settings''' tab, which is the default view when the program is executed. Supply the Host (domain name or IP address), the '''username''' and '''password''' for mysql to allow access to your EVEmu database, the port number used by mysql, and the exact name of the EVEmu database. Once this information is entered, click the Connect button. EVEmu Control Panel will then try to connect and if successful, the Connect button will be depressed and disabled. Across the menu bar past the Help menu, you will also see some greyed text declaring &quot;Connected To DB&quot;. You may now proceed to make use of the other tabs to interact and change data in your EVEmu database's tables. === <span id="Account_and_Character_Editor" class="mw-headline"> Account and Character Editor </span> === ''Development Status:'' '''OPERATIONAL, BUT NOT COMPLETE''' '''TO BE IMPLEMENTED:''' <pre>* Edit a character's station, solar system, region, constellation, and current ship location info * Edit ban/kick info on any character and/or account * Export an account or a character or an account and one or more of its characters into an XML file * Info saved: all character info, clone grade, skills, certifications, attributes, augmentations, bio, wallet balance * NO items owned are saved * NO ID values from database are saved, these are auto-regenerated and auto-assigned upon import to another database * Import an account or a character or an account and one or more of its characters from an XML file</pre> This tab is the quickest way to add an account to your EVEmu server and edit existing accounts. Accounts are added by supplying a username, a password, and a user role. This tab also allow the editing of any characters in your EVEmu server. === <span id="Item_and_Ship_Editor" class="mw-headline"> Item and Ship Editor </span> === ''Development Status:'' '''OPERATIONAL, HOWEVER, IT MIGHT LACK SOME USEFUL FEATURES - LET US KNOW YOUR IDEAS!''' Upon first connecting to your database and entering the '''Item/Ship Editor''' tab, you'll see lots of blank fields. Start with the '''Category''' drop-down control. Select an Item Category, such as Ships or Modules, there are quite a few. Now you'll see two new controls and buttons above the list of items now populated in the window below and a new button labeled '''Edit Item'''. The '''Search on typeName''' control and button will let you type some text to search by '''typeName''' field in the list below to either get the one item you're interested or filter down the view. You also filter down results by entering partial typeID or you can get directly to an item by just entering the full typeID number into the '''Search on typeID''' control. Either text box will search on hitting ENTER or clicking the button to its right. This whole tab works like an interactive GUI for the following tables: '''invCategories''', '''invGroups''', '''invTypes''', '''dgmTypeAttributes''', and '''dgmTypeEffects'''. It allows you to view attributes and effects and general information on any item in the game universe by first selecting its category then either searching on a typeID or an item's name to get to it. Once you've identified an item you want to view or edit, either double-click its line in the results window or you can select it and click the '''Edit Item''' button below the results window. Once inside the Edit/view window for a single item, there are three tabs: '''Item Info''', '''Item Attributes''', and '''Item Effects'''. General info is in the first tab, attributes associated with this item are in the second tab, and effects associated with this item, if any, are found in the third tab. Only a very experienced developer or someone who understands the deeper inner workings of the EVE game should ever be editing this information, but feel free to browse it and learn what it means. More information on Attributes and Effects can be found on the [[Category_Game_Operation.html|Game Operation]] page along with other aspects of how the game works. === <span id="Insurance_Editor" class="mw-headline"> Insurance Editor </span> === ''Development Status:'' '''NON-OPERATIONAL''' This tab allows some kind of editing of Insurance information, but it has niot been implemented yet. === <span id="Race_and_Bloodline_Editor" class="mw-headline"> Race and Bloodline Editor </span> === ''Development Status:'' '''OPERATIONAL''' <br /> === <span id="Seed_Market" class="mw-headline"> Seed Market </span> === ''Development Status:'' '''FULLY OPERATIONAL''' '''TO BE IMPLEMENTED:''' <pre>* Change system and region selection behavior such that the list of individually selected systems is appended with the list of all systems that are gathered from the list of selected regions.</pre> This tab simply allows one to seed the '''market_orders''' table with sell orders for whatever items, modules, ships, skills, etc that one wants to make available to players in the game. That is where the simplicity ends as this one tab has the ability to create such far-reaching queries that it has been known to seemingly crash mysql or at least make it run so long that people kill the mysql daemon and thus kill their whole evemu database causing them to re-create it from scratch. (Trust me, I've done it.) '''WARNING: Before you make large queries using this tool, it is STRONGLY recommended that you do a mysql dump of your entire table or back it up some other way. THEN, if you need to seed large swaths of the market such as an entire region (or more) full of every item, you should un-check 'Apply query to database?' checkbox and copy the queries into a text file which you would then run using the mysql command line interface.''' To seed the market, follow these steps, which have choices to be made by you based on what kinds of items you want to seed and where you want to seed them. Selections start at the far left of the window and progress toward the right side of the window. Keep that in mind when following these instructions. <pre>1. Select zero or more races in the Races selection box on the far left. Zero selected races is used to seed items, skills, ships, etc. that have NO race, i.e. their raceID is set to NULL in the invtypes table. Select one or more races to seed items, skills, ships, etc. from those selected race(s). 2. You may select one or more individual solar systems with the System selection box AND / OR you may select one or more individual regions with the Region selection box. Do note that if you select one or more individual systems AND one or more regions the list of systems in the selected regions will replace the list of individually selected systems. 3. With solar systems and/or regions selected, now you can select item categories with the Category selection box. You may select one or more simultaneously. 4. For each category selected, all items in that category will be listed in the Group selection box on the far right. You may select one or more or all of the entries in this selection box. 5. There is a pair of radio buttons you may use to select whether the market is seeded wsith BUY or SELL orders. 5. Now, you may wish to simply commit the INSERT query directly to the EVEmu database, however, there are some other options to consider. If you do not want to commit the INSERT query to your database at this time, the Query window below is there for you to copy the query for later use. In this case, simply un-check the check box then click the Seed Market button. If you do with the query to be committed to the database, leave this box checked, then click the Seed Market button. 6. Additionally, you can clear the query window by clicking the Clear Query button. 7. Because market seeding quries can become quite large very quickly, there are some query 'thinning' options you may want to consider. a. Use the 0% to 100% slider control to tell EVEmu Control Panel to thin out the final system list to some percentage of the selected systems that the makret query will affect. b. Use the security level controls to seed the selected market items into those systems with security level at and above or at and below the security level you supply in the text box. The systems seeded with market items will be a subset of the individual systems you selected or those in the regions you selected. This works separately and in conjunction with the percentage slider control.</pre> === <span id="Seed_Asteroid_Belts" class="mw-headline"> Seed Asteroid Belts </span> === ''Development Status:'' '''FUNCTIONAL''' There is an issue that has come with further testing of this feature and that is all asteroids spawned using the control panel have an ore total of 1. Using GM commands in-game to spawn asteroids will spawn with a 'reasonable' quantity of ore. So this feature is effectively broken. '''TO BE IMPLEMENTED''' <pre>* Provide controls and lists to first select systems (with a percentage slider to thin out the system list) and belts in which to seed asteroids and then checkboxes to selectg which ores to seed, sliders for each ore to select relative concentrations and finally a list control that allows the choice of what kind of physical arrangement of the asteroids in space you want with a size control to determine the overall dimensions of the arrangement. * Ideas for physical arrangements: crescent, line, cross, sphere, random x/y/z, any others?</pre> === <span id="Ore_Editor" class="mw-headline"> Ore Editor </span> === === <span id="Market_Groups" class="mw-headline"> Market Groups </span> === 79a37c6a192c04b446ba561b408ce505fe9b1907 225 224 2021-04-04T02:06:11Z DarksHeiress 7 wikitext text/x-wiki = <span id="EVEmu_Database_Tools" class="mw-headline"> EVEmu Database Tools </span> = Since EVEmu is a custom server that interacts with a vast MySQL database, we need tools to work with that database whether the server is running or not. So far, we've got one Database tool and that's '''DB Editor'''. == <span id="EVEmu_Control_Panel" class="mw-headline"> EVEmu Control Panel </span> == EVEmu Control Panel is a rather simple tool created using Visual C# and can be built and debugged using the FREE Microsoft Visual Studio 2010 Express which you can [http://www.microsoft.com/express/downloads/ download here], just install Visual C# 2010 Express. Created by '''Hurracane''', this tool connects the the EVEmu SQL database and provides several ways to interact with and change data stored within the database. These major feature categories are discussed in detail below. [https://www.github.com/evemuproject/evemu_control_panel Get EVEmu Control Panel Source from Github] === <span id="SQL_Settings_-_The_Connection_to_Your_Database" class="mw-headline"> SQL Settings - The Connection to Your Database </span> === ''Development Status:'' '''FULLY OPERATIONAL''' '''Before you do anything with EVEmu Control Panel, you must connect it to your EVEmu database.''' This is done using the '''SQL Settings''' tab, which is the default view when the program is executed. Supply the Host (domain name or IP address), the '''username''' and '''password''' for mysql to allow access to your EVEmu database, the port number used by mysql, and the exact name of the EVEmu database. Once this information is entered, click the Connect button. EVEmu Control Panel will then try to connect and if successful, the Connect button will be depressed and disabled. Across the menu bar past the Help menu, you will also see some greyed text declaring &quot;Connected To DB&quot;. You may now proceed to make use of the other tabs to interact and change data in your EVEmu database's tables. === <span id="Account_and_Character_Editor" class="mw-headline"> Account and Character Editor </span> === ''Development Status:'' '''OPERATIONAL, BUT NOT COMPLETE''' '''TO BE IMPLEMENTED:''' <pre>* Edit a character's station, solar system, region, constellation, and current ship location info * Edit ban/kick info on any character and/or account * Export an account or a character or an account and one or more of its characters into an XML file * Info saved: all character info, clone grade, skills, certifications, attributes, augmentations, bio, wallet balance * NO items owned are saved * NO ID values from database are saved, these are auto-regenerated and auto-assigned upon import to another database * Import an account or a character or an account and one or more of its characters from an XML file</pre> This tab is the quickest way to add an account to your EVEmu server and edit existing accounts. Accounts are added by supplying a username, a password, and a user role. This tab also allow the editing of any characters in your EVEmu server. === <span id="Item_and_Ship_Editor" class="mw-headline"> Item and Ship Editor </span> === ''Development Status:'' '''OPERATIONAL, HOWEVER, IT MIGHT LACK SOME USEFUL FEATURES - LET US KNOW YOUR IDEAS!''' Upon first connecting to your database and entering the '''Item/Ship Editor''' tab, you'll see lots of blank fields. Start with the '''Category''' drop-down control. Select an Item Category, such as Ships or Modules, there are quite a few. Now you'll see two new controls and buttons above the list of items now populated in the window below and a new button labeled '''Edit Item'''. The '''Search on typeName''' control and button will let you type some text to search by '''typeName''' field in the list below to either get the one item you're interested or filter down the view. You also filter down results by entering partial typeID or you can get directly to an item by just entering the full typeID number into the '''Search on typeID''' control. Either text box will search on hitting ENTER or clicking the button to its right. This whole tab works like an interactive GUI for the following tables: '''invCategories''', '''invGroups''', '''invTypes''', '''dgmTypeAttributes''', and '''dgmTypeEffects'''. It allows you to view attributes and effects and general information on any item in the game universe by first selecting its category then either searching on a typeID or an item's name to get to it. Once you've identified an item you want to view or edit, either double-click its line in the results window or you can select it and click the '''Edit Item''' button below the results window. Once inside the Edit/view window for a single item, there are three tabs: '''Item Info''', '''Item Attributes''', and '''Item Effects'''. General info is in the first tab, attributes associated with this item are in the second tab, and effects associated with this item, if any, are found in the third tab. Only a very experienced developer or someone who understands the deeper inner workings of the EVE game should ever be editing this information, but feel free to browse it and learn what it means. More information on Attributes and Effects can be found on the [https://wiki.evemu.dev/index.php?title=Category:Game_Operation Game Operation] page along with other aspects of how the game works. === <span id="Insurance_Editor" class="mw-headline"> Insurance Editor </span> === ''Development Status:'' '''NON-OPERATIONAL''' This tab allows some kind of editing of Insurance information, but it has niot been implemented yet. === <span id="Race_and_Bloodline_Editor" class="mw-headline"> Race and Bloodline Editor </span> === ''Development Status:'' '''OPERATIONAL''' <br /> === <span id="Seed_Market" class="mw-headline"> Seed Market </span> === ''Development Status:'' '''FULLY OPERATIONAL''' '''TO BE IMPLEMENTED:''' <pre>* Change system and region selection behavior such that the list of individually selected systems is appended with the list of all systems that are gathered from the list of selected regions.</pre> This tab simply allows one to seed the '''market_orders''' table with sell orders for whatever items, modules, ships, skills, etc that one wants to make available to players in the game. That is where the simplicity ends as this one tab has the ability to create such far-reaching queries that it has been known to seemingly crash mysql or at least make it run so long that people kill the mysql daemon and thus kill their whole evemu database causing them to re-create it from scratch. (Trust me, I've done it.) '''WARNING: Before you make large queries using this tool, it is STRONGLY recommended that you do a mysql dump of your entire table or back it up some other way. THEN, if you need to seed large swaths of the market such as an entire region (or more) full of every item, you should un-check 'Apply query to database?' checkbox and copy the queries into a text file which you would then run using the mysql command line interface.''' To seed the market, follow these steps, which have choices to be made by you based on what kinds of items you want to seed and where you want to seed them. Selections start at the far left of the window and progress toward the right side of the window. Keep that in mind when following these instructions. <pre>1. Select zero or more races in the Races selection box on the far left. Zero selected races is used to seed items, skills, ships, etc. that have NO race, i.e. their raceID is set to NULL in the invtypes table. Select one or more races to seed items, skills, ships, etc. from those selected race(s). 2. You may select one or more individual solar systems with the System selection box AND / OR you may select one or more individual regions with the Region selection box. Do note that if you select one or more individual systems AND one or more regions the list of systems in the selected regions will replace the list of individually selected systems. 3. With solar systems and/or regions selected, now you can select item categories with the Category selection box. You may select one or more simultaneously. 4. For each category selected, all items in that category will be listed in the Group selection box on the far right. You may select one or more or all of the entries in this selection box. 5. There is a pair of radio buttons you may use to select whether the market is seeded wsith BUY or SELL orders. 5. Now, you may wish to simply commit the INSERT query directly to the EVEmu database, however, there are some other options to consider. If you do not want to commit the INSERT query to your database at this time, the Query window below is there for you to copy the query for later use. In this case, simply un-check the check box then click the Seed Market button. If you do with the query to be committed to the database, leave this box checked, then click the Seed Market button. 6. Additionally, you can clear the query window by clicking the Clear Query button. 7. Because market seeding quries can become quite large very quickly, there are some query 'thinning' options you may want to consider. a. Use the 0% to 100% slider control to tell EVEmu Control Panel to thin out the final system list to some percentage of the selected systems that the makret query will affect. b. Use the security level controls to seed the selected market items into those systems with security level at and above or at and below the security level you supply in the text box. The systems seeded with market items will be a subset of the individual systems you selected or those in the regions you selected. This works separately and in conjunction with the percentage slider control.</pre> === <span id="Seed_Asteroid_Belts" class="mw-headline"> Seed Asteroid Belts </span> === ''Development Status:'' '''FUNCTIONAL''' There is an issue that has come with further testing of this feature and that is all asteroids spawned using the control panel have an ore total of 1. Using GM commands in-game to spawn asteroids will spawn with a 'reasonable' quantity of ore. So this feature is effectively broken. '''TO BE IMPLEMENTED''' <pre>* Provide controls and lists to first select systems (with a percentage slider to thin out the system list) and belts in which to seed asteroids and then checkboxes to selectg which ores to seed, sliders for each ore to select relative concentrations and finally a list control that allows the choice of what kind of physical arrangement of the asteroids in space you want with a size control to determine the overall dimensions of the arrangement. * Ideas for physical arrangements: crescent, line, cross, sphere, random x/y/z, any others?</pre> === <span id="Ore_Editor" class="mw-headline"> Ore Editor </span> === === <span id="Market_Groups" class="mw-headline"> Market Groups </span> === 5a217bcd4876f952ee212af4fa0ca57602bad4f9 EVEmu Database Guide 0 165 227 2021-04-04T02:08:36Z DarksHeiress 7 Created page with "== <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> == See [[Category:EVE_Database|the EVE Database article]] for a complete listing of tables both b..." wikitext text/x-wiki == <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> == See [[Category:EVE_Database|the EVE Database article]] for a complete listing of tables both brought in by the official CCP static DB dump as well as those created and maintained by the EVEmu project. == <span id="Database_Table_Types" class="mw-headline"> ''Database Table Types'' </span> == Below is a description of the different table types and a list of tables: '''IndexRowset''' - these are simple keyed tables: <pre> The following tables are in IndexRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ invcategories categoryID invgroups groupID invmetagroups metaGroupID invtypes typeID invbptypes blueprintTypeID dgmattribs attributeID dgmeffects effectID evegraphics graphicID eveunits unitID eveowners ownerID evelocations locationID corptickernames corporationID allianceshortnames allianceID ramaltypes assemblyLineTypeID ramactivities activityID ramcompletedstatuses completedStatusID mapcelestialdescriptions celestialID certificates certificateID certificaterelationships relationshipID locationwormholeclasses locationID</pre> <br /> '''FilterRowset''' - these are accessed as dicts, keyed on the table's &quot;primary key&quot;, and each value is a standard list or an IndexRowset containing the data rows for the key. <pre> The following tables are in FilterRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ dgmtypeeffects typeID dgmtypeattribs typeID invmetatypes typeID invreactiontypes reactionTypeID ramaltypesdetailpercategory assemblyLineTypeID ramaltypesdetailpergroup assemblyLineTypeID ramtyperequirements typeID ramtypematerials typeID</pre> 51293d4e33ec41c09cb5d6d3a4764a75d2c50dcf 228 227 2021-04-04T02:09:02Z DarksHeiress 7 wikitext text/x-wiki == <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> == See [[EVE_Database|the EVE Database article]] for a complete listing of tables both brought in by the official CCP static DB dump as well as those created and maintained by the EVEmu project. == <span id="Database_Table_Types" class="mw-headline"> ''Database Table Types'' </span> == Below is a description of the different table types and a list of tables: '''IndexRowset''' - these are simple keyed tables: <pre> The following tables are in IndexRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ invcategories categoryID invgroups groupID invmetagroups metaGroupID invtypes typeID invbptypes blueprintTypeID dgmattribs attributeID dgmeffects effectID evegraphics graphicID eveunits unitID eveowners ownerID evelocations locationID corptickernames corporationID allianceshortnames allianceID ramaltypes assemblyLineTypeID ramactivities activityID ramcompletedstatuses completedStatusID mapcelestialdescriptions celestialID certificates certificateID certificaterelationships relationshipID locationwormholeclasses locationID</pre> <br /> '''FilterRowset''' - these are accessed as dicts, keyed on the table's &quot;primary key&quot;, and each value is a standard list or an IndexRowset containing the data rows for the key. <pre> The following tables are in FilterRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ dgmtypeeffects typeID dgmtypeattribs typeID invmetatypes typeID invreactiontypes reactionTypeID ramaltypesdetailpercategory assemblyLineTypeID ramaltypesdetailpergroup assemblyLineTypeID ramtyperequirements typeID ramtypematerials typeID</pre> dc23a0232f859bad402b516f7aebf1aa2a259ba1 229 228 2021-04-04T02:09:39Z DarksHeiress 7 wikitext text/x-wiki == <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> == See [[Category:EVE_Database|the EVE Database article]] for a complete listing of tables both brought in by the official CCP static DB dump as well as those created and maintained by the EVEmu project. == <span id="Database_Table_Types" class="mw-headline"> ''Database Table Types'' </span> == Below is a description of the different table types and a list of tables: '''IndexRowset''' - these are simple keyed tables: <pre> The following tables are in IndexRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ invcategories categoryID invgroups groupID invmetagroups metaGroupID invtypes typeID invbptypes blueprintTypeID dgmattribs attributeID dgmeffects effectID evegraphics graphicID eveunits unitID eveowners ownerID evelocations locationID corptickernames corporationID allianceshortnames allianceID ramaltypes assemblyLineTypeID ramactivities activityID ramcompletedstatuses completedStatusID mapcelestialdescriptions celestialID certificates certificateID certificaterelationships relationshipID locationwormholeclasses locationID</pre> <br /> '''FilterRowset''' - these are accessed as dicts, keyed on the table's &quot;primary key&quot;, and each value is a standard list or an IndexRowset containing the data rows for the key. <pre> The following tables are in FilterRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ dgmtypeeffects typeID dgmtypeattribs typeID invmetatypes typeID invreactiontypes reactionTypeID ramaltypesdetailpercategory assemblyLineTypeID ramaltypesdetailpergroup assemblyLineTypeID ramtyperequirements typeID ramtypematerials typeID</pre> 51293d4e33ec41c09cb5d6d3a4764a75d2c50dcf 230 229 2021-04-04T02:11:52Z DarksHeiress 7 wikitext text/x-wiki == <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> == See [https://wiki.evemu.dev/wiki/Category:EVE_Database |here] for a complete listing of tables both brought in by the official CCP static DB dump as well as those created and maintained by the EVEmu project. == <span id="Database_Table_Types" class="mw-headline"> ''Database Table Types'' </span> == Below is a description of the different table types and a list of tables: '''IndexRowset''' - these are simple keyed tables: <pre> The following tables are in IndexRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ invcategories categoryID invgroups groupID invmetagroups metaGroupID invtypes typeID invbptypes blueprintTypeID dgmattribs attributeID dgmeffects effectID evegraphics graphicID eveunits unitID eveowners ownerID evelocations locationID corptickernames corporationID allianceshortnames allianceID ramaltypes assemblyLineTypeID ramactivities activityID ramcompletedstatuses completedStatusID mapcelestialdescriptions celestialID certificates certificateID certificaterelationships relationshipID locationwormholeclasses locationID</pre> <br /> '''FilterRowset''' - these are accessed as dicts, keyed on the table's &quot;primary key&quot;, and each value is a standard list or an IndexRowset containing the data rows for the key. <pre> The following tables are in FilterRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ dgmtypeeffects typeID dgmtypeattribs typeID invmetatypes typeID invreactiontypes reactionTypeID ramaltypesdetailpercategory assemblyLineTypeID ramaltypesdetailpergroup assemblyLineTypeID ramtyperequirements typeID ramtypematerials typeID</pre> 4d74010176b5e537b3472647826ef4feb0f385ca 231 230 2021-04-04T02:12:10Z DarksHeiress 7 wikitext text/x-wiki == <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> == See [https://wiki.evemu.dev/wiki/Category:EVE_Database here] for a complete listing of tables both brought in by the official CCP static DB dump as well as those created and maintained by the EVEmu project. == <span id="Database_Table_Types" class="mw-headline"> ''Database Table Types'' </span> == Below is a description of the different table types and a list of tables: '''IndexRowset''' - these are simple keyed tables: <pre> The following tables are in IndexRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ invcategories categoryID invgroups groupID invmetagroups metaGroupID invtypes typeID invbptypes blueprintTypeID dgmattribs attributeID dgmeffects effectID evegraphics graphicID eveunits unitID eveowners ownerID evelocations locationID corptickernames corporationID allianceshortnames allianceID ramaltypes assemblyLineTypeID ramactivities activityID ramcompletedstatuses completedStatusID mapcelestialdescriptions celestialID certificates certificateID certificaterelationships relationshipID locationwormholeclasses locationID</pre> <br /> '''FilterRowset''' - these are accessed as dicts, keyed on the table's &quot;primary key&quot;, and each value is a standard list or an IndexRowset containing the data rows for the key. <pre> The following tables are in FilterRowset form:</pre> <pre> TABLENAME PRIMARY KEY --------------------------- ------------------ dgmtypeeffects typeID dgmtypeattribs typeID invmetatypes typeID invreactiontypes reactionTypeID ramaltypesdetailpercategory assemblyLineTypeID ramaltypesdetailpergroup assemblyLineTypeID ramtyperequirements typeID ramtypematerials typeID</pre> 39abe5bcab9207db9faa9c95f7bf6cf0624f4c27 Main Page/Developer Links 0 8 232 192 2021-04-04T02:13:12Z DarksHeiress 7 wikitext text/x-wiki '''Use these links to learn about development status and ongoing development work:''' * ACTIVE ** [[ Crucible Project Status]] | [[ Project Plan]] * RESOURCES ** [[ Getting Started]] ** [[ Development Team]] ** [[ Development Practices]] ** [[ Source Code]] ** [[ Testing EVEmu | Testing EVEmu ]] ** [[EVEmu_Connect|Connect with the community]] b56773ef238a39300a81f11e95fb11c3cfa13b08 Main Page 0 2 233 196 2021-04-04T02:13:39Z DarksHeiress 7 wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Welcome to the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; background:#1F1F1F; font-size:18px; font-weight:bold; color:#fff; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | Server Projects | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="20%" | EVEmu Documentation | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="25%" | Server Administrators | style="background-color: #474747; font-weight: bold; text-align:center;border-style:solid;border-width: 1px;border-color: #1c1c1c;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;border-color: #1c1c1c; background-color: #272727;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 0deaf270066056a70275f444ae58cabbb08b856c 236 233 2021-04-04T13:51:30Z Jdhirst 10 wikitext text/x-wiki <big>'''[[Old Wiki|CLICK HERE FOR OLD WIKI]]'''</big> {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} c93e69770919bcf42e284bc6c2af20f2e3dff2ee 237 236 2021-04-04T13:52:24Z Jdhirst 10 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info <big>'''Check out the [[Old Wiki|Old Wiki Import]]!'''</big> |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 6fe75475ede36518c44974562539656155d4926a 238 237 2021-04-04T13:52:46Z Jdhirst 10 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 10% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} b52c08a42751f1b2a177bb2709488a3f2ce56ac2 Quick Start Guide 0 21 234 41 2021-04-04T02:25:14Z Grenval 6 wikitext text/x-wiki == '''Client configuration''' == '''Get the Client [https://files.evemu.dev/cruc/client/ >>> DOWNLOAD HERE <<<]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe >>> DOWNLOAD HERE <<<] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.</div> == '''Server configuration (From source)''' == '''SERVER COMPILATION''' sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install '''DATABASE SETUP:''' '''NOTE:''' * ''%devRoot%'' is where the development files are located. * These may be the same location but that is not necessary. # Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; # In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows # Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; '''FINAL STEP:''' # Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc # Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. # Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. # To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server == Test and Report! == Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.<br />You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.<br />[http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 7b89111a4e77a7fb7e3f42fe1500868da597d14f 235 234 2021-04-04T02:25:52Z Grenval 6 wikitext text/x-wiki == '''Client configuration''' == '''Get the Client [https://files.evemu.dev/cruc/client/ >>> DOWNLOAD HERE <<<]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe >>> DOWNLOAD HERE <<<] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.</div> == '''Server configuration (From source)''' == '''SERVER COMPILATION:''' sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install '''DATABASE SETUP:''' '''NOTE:''' * ''%devRoot%'' is where the development files are located. * These may be the same location but that is not necessary. # Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; # In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows # Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; '''FINAL STEP:''' # Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc # Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. # Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. # To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server == Test and Report! == Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.<br />You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.<br />[http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. bc30ba20c78bb810149289add484c05306e6dc12 Module:Message box 828 166 240 239 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported Scribunto text/plain -- This is a meta-module for producing message box templates, including -- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}. -- Load necessary modules. require('Module:No globals') local getArgs local yesno = require('Module:Yesno') -- Get a language object for formatDate and ucfirst. local lang = mw.language.getContentLanguage() -- Define constants local CONFIG_MODULE = 'Module:Message box/configuration' local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function getTitleObject(...) -- Get the title object, passing the function through pcall -- in case we are over the expensive function count limit. local success, title = pcall(mw.title.new, ...) if success then return title end end local function union(t1, t2) -- Returns the union of two arrays. local vals = {} for i, v in ipairs(t1) do vals[v] = true end for i, v in ipairs(t2) do vals[v] = true end local ret = {} for k in pairs(vals) do table.insert(ret, k) end table.sort(ret) return ret end local function getArgNums(args, prefix) local nums = {} for k, v in pairs(args) do local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$') if num then table.insert(nums, tonumber(num)) end end table.sort(nums) return nums end -------------------------------------------------------------------------------- -- Box class definition -------------------------------------------------------------------------------- local MessageBox = {} MessageBox.__index = MessageBox function MessageBox.new(boxType, args, cfg) args = args or {} local obj = {} -- Set the title object and the namespace. obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle() -- Set the config for our box type. obj.cfg = cfg[boxType] if not obj.cfg then local ns = obj.title.namespace -- boxType is "mbox" or invalid input if args.demospace and args.demospace ~= '' then -- implement demospace parameter of mbox local demospace = string.lower(args.demospace) if DEMOSPACES[demospace] then -- use template from DEMOSPACES obj.cfg = cfg[DEMOSPACES[demospace]] elseif string.find( demospace, 'talk' ) then -- demo as a talk page obj.cfg = cfg.tmbox else -- default to ombox obj.cfg = cfg.ombox end elseif ns == 0 then obj.cfg = cfg.ambox -- main namespace elseif ns == 6 then obj.cfg = cfg.imbox -- file namespace elseif ns == 14 then obj.cfg = cfg.cmbox -- category namespace else local nsTable = mw.site.namespaces[ns] if nsTable and nsTable.isTalk then obj.cfg = cfg.tmbox -- any talk namespace else obj.cfg = cfg.ombox -- other namespaces or invalid input end end end -- Set the arguments, and remove all blank arguments except for the ones -- listed in cfg.allowBlankParams. do local newArgs = {} for k, v in pairs(args) do if v ~= '' then newArgs[k] = v end end for i, param in ipairs(obj.cfg.allowBlankParams or {}) do newArgs[param] = args[param] end obj.args = newArgs end -- Define internal data structure. obj.categories = {} obj.classes = {} -- For lazy loading of [[Module:Category handler]]. obj.hasCategories = false return setmetatable(obj, MessageBox) end function MessageBox:addCat(ns, cat, sort) if not cat then return nil end if sort then cat = string.format('[[Category:%s|%s]]', cat, sort) else cat = string.format('[[Category:%s]]', cat) end self.hasCategories = true self.categories[ns] = self.categories[ns] or {} table.insert(self.categories[ns], cat) end function MessageBox:addClass(class) if not class then return nil end table.insert(self.classes, class) end function MessageBox:setParameters() local args = self.args local cfg = self.cfg -- Get type data. self.type = args.type local typeData = cfg.types[self.type] self.invalidTypeError = cfg.showInvalidTypeError and self.type and not typeData typeData = typeData or cfg.types[cfg.default] self.typeClass = typeData.class self.typeImage = typeData.image -- Find if the box has been wrongly substituted. self.isSubstituted = cfg.substCheck and args.subst == 'SUBST' -- Find whether we are using a small message box. self.isSmall = cfg.allowSmall and ( cfg.smallParam and args.small == cfg.smallParam or not cfg.smallParam and yesno(args.small) ) -- Add attributes, classes and styles. self.id = args.id self.name = args.name if self.name then self:addClass('box-' .. string.gsub(self.name,' ','_')) end if yesno(args.plainlinks) ~= false then self:addClass('plainlinks') end for _, class in ipairs(cfg.classes or {}) do self:addClass(class) end if self.isSmall then self:addClass(cfg.smallClass or 'mbox-small') end self:addClass(self.typeClass) self:addClass(args.class) self.style = args.style self.attrs = args.attrs -- Set text style. self.textstyle = args.textstyle -- Find if we are on the template page or not. This functionality is only -- used if useCollapsibleTextFields is set, or if both cfg.templateCategory -- and cfg.templateCategoryRequireName are set. self.useCollapsibleTextFields = cfg.useCollapsibleTextFields if self.useCollapsibleTextFields or cfg.templateCategory and cfg.templateCategoryRequireName then if self.name then local templateName = mw.ustring.match( self.name, '^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$' ) or self.name templateName = 'Template:' .. templateName self.templateTitle = getTitleObject(templateName) end self.isTemplatePage = self.templateTitle and mw.title.equals(self.title, self.templateTitle) end -- Process data for collapsible text fields. At the moment these are only -- used in {{ambox}}. if self.useCollapsibleTextFields then -- Get the self.issue value. if self.isSmall and args.smalltext then self.issue = args.smalltext else local sect if args.sect == '' then sect = 'This ' .. (cfg.sectionDefault or 'page') elseif type(args.sect) == 'string' then sect = 'This ' .. args.sect end local issue = args.issue issue = type(issue) == 'string' and issue ~= '' and issue or nil local text = args.text text = type(text) == 'string' and text or nil local issues = {} table.insert(issues, sect) table.insert(issues, issue) table.insert(issues, text) self.issue = table.concat(issues, ' ') end -- Get the self.talk value. local talk = args.talk -- Show talk links on the template page or template subpages if the talk -- parameter is blank. if talk == '' and self.templateTitle and ( mw.title.equals(self.templateTitle, self.title) or self.title:isSubpageOf(self.templateTitle) ) then talk = '#' elseif talk == '' then talk = nil end if talk then -- If the talk value is a talk page, make a link to that page. Else -- assume that it's a section heading, and make a link to the talk -- page of the current page with that section heading. local talkTitle = getTitleObject(talk) local talkArgIsTalkPage = true if not talkTitle or not talkTitle.isTalkPage then talkArgIsTalkPage = false talkTitle = getTitleObject( self.title.text, mw.site.namespaces[self.title.namespace].talk.id ) end if talkTitle and talkTitle.exists then local talkText if self.isSmall then local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. '#' .. talk) talkText = string.format('([[%s|talk]])', talkLink) else talkText = 'Relevant discussion may be found on' if talkArgIsTalkPage then talkText = string.format( '%s [[%s|%s]].', talkText, talk, talkTitle.prefixedText ) else talkText = string.format( '%s the [[%s#%s|talk page]].', talkText, talkTitle.prefixedText, talk ) end end self.talk = talkText end end -- Get other values. self.fix = args.fix ~= '' and args.fix or nil local date if args.date and args.date ~= '' then date = args.date elseif args.date == '' and self.isTemplatePage then date = lang:formatDate('F Y') end if date then self.date = string.format(" <small class='date-container'>''(<span class='date'>%s</span>)''</small>", date) end self.info = args.info if yesno(args.removalnotice) then self.removalNotice = cfg.removalNotice end end -- Set the non-collapsible text field. At the moment this is used by all box -- types other than ambox, and also by ambox when small=yes. if self.isSmall then self.text = args.smalltext or args.text else self.text = args.text end -- Set the below row. self.below = cfg.below and args.below -- General image settings. self.imageCellDiv = not self.isSmall and cfg.imageCellDiv self.imageEmptyCell = cfg.imageEmptyCell if cfg.imageEmptyCellStyle then self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px' end -- Left image settings. local imageLeft = self.isSmall and args.smallimage or args.image if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none' or not cfg.imageCheckBlank and imageLeft ~= 'none' then self.imageLeft = imageLeft if not imageLeft then local imageSize = self.isSmall and (cfg.imageSmallSize or '30x30px') or '40x40px' self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage or 'Imbox notice.png', imageSize) end end -- Right image settings. local imageRight = self.isSmall and args.smallimageright or args.imageright if not (cfg.imageRightNone and imageRight == 'none') then self.imageRight = imageRight end end function MessageBox:setMainspaceCategories() local args = self.args local cfg = self.cfg if not cfg.allowMainspaceCategories then return nil end local nums = {} for _, prefix in ipairs{'cat', 'category', 'all'} do args[prefix .. '1'] = args[prefix] nums = union(nums, getArgNums(args, prefix)) end -- The following is roughly equivalent to the old {{Ambox/category}}. local date = args.date date = type(date) == 'string' and date local preposition = 'from' for _, num in ipairs(nums) do local mainCat = args['cat' .. tostring(num)] or args['category' .. tostring(num)] local allCat = args['all' .. tostring(num)] mainCat = type(mainCat) == 'string' and mainCat allCat = type(allCat) == 'string' and allCat if mainCat and date and date ~= '' then local catTitle = string.format('%s %s %s', mainCat, preposition, date) self:addCat(0, catTitle) catTitle = getTitleObject('Category:' .. catTitle) if not catTitle or not catTitle.exists then self:addCat(0, 'Articles with invalid date parameter in template') end elseif mainCat and (not date or date == '') then self:addCat(0, mainCat) end if allCat then self:addCat(0, allCat) end end end function MessageBox:setTemplateCategories() local args = self.args local cfg = self.cfg -- Add template categories. if cfg.templateCategory then if cfg.templateCategoryRequireName then if self.isTemplatePage then self:addCat(10, cfg.templateCategory) end elseif not self.title.isSubpage then self:addCat(10, cfg.templateCategory) end end -- Add template error categories. if cfg.templateErrorCategory then local templateErrorCategory = cfg.templateErrorCategory local templateCat, templateSort if not self.name and not self.title.isSubpage then templateCat = templateErrorCategory elseif self.isTemplatePage then local paramsToCheck = cfg.templateErrorParamsToCheck or {} local count = 0 for i, param in ipairs(paramsToCheck) do if not args[param] then count = count + 1 end end if count > 0 then templateCat = templateErrorCategory templateSort = tostring(count) end if self.categoryNums and #self.categoryNums > 0 then templateCat = templateErrorCategory templateSort = 'C' end end self:addCat(10, templateCat, templateSort) end end function MessageBox:setAllNamespaceCategories() -- Set categories for all namespaces. if self.invalidTypeError then local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort) end if self.isSubstituted then self:addCat('all', 'Pages with incorrectly substituted templates') end end function MessageBox:setCategories() if self.title.namespace == 0 then self:setMainspaceCategories() elseif self.title.namespace == 10 then self:setTemplateCategories() end self:setAllNamespaceCategories() end function MessageBox:renderCategories() if not self.hasCategories then -- No categories added, no need to pass them to Category handler so, -- if it was invoked, it would return the empty string. -- So we shortcut and return the empty string. return "" end -- Convert category tables to strings and pass them through -- [[Module:Category handler]]. return require('Module:Category handler')._main{ main = table.concat(self.categories[0] or {}), template = table.concat(self.categories[10] or {}), all = table.concat(self.categories.all or {}), nocat = self.args.nocat, page = self.args.page } end function MessageBox:export() local root = mw.html.create() -- Add the subst check error. if self.isSubstituted and self.name then root:tag('b') :addClass('error') :wikitext(string.format( 'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.', mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}') )) end -- Create the box table. local boxTable = root:tag('table') boxTable:attr('id', self.id or nil) for i, class in ipairs(self.classes or {}) do boxTable:addClass(class or nil) end boxTable :cssText(self.style or nil) :attr('role', 'presentation') if self.attrs then boxTable:attr(self.attrs) end -- Add the left-hand image. local row = boxTable:tag('tr') if self.imageLeft then local imageLeftCell = row:tag('td'):addClass('mbox-image') if self.imageCellDiv then -- If we are using a div, redefine imageLeftCell so that the image -- is inside it. Divs use style="width: 52px;", which limits the -- image width to 52px. If any images in a div are wider than that, -- they may overlap with the text or cause other display problems. imageLeftCell = imageLeftCell:tag('div'):css('width', '52px') end imageLeftCell:wikitext(self.imageLeft or nil) elseif self.imageEmptyCell then -- Some message boxes define an empty cell if no image is specified, and -- some don't. The old template code in templates where empty cells are -- specified gives the following hint: "No image. Cell with some width -- or padding necessary for text cell to have 100% width." row:tag('td') :addClass('mbox-empty-cell') :cssText(self.imageEmptyCellStyle or nil) end -- Add the text. local textCell = row:tag('td'):addClass('mbox-text') if self.useCollapsibleTextFields then -- The message box uses advanced text parameters that allow things to be -- collapsible. At the moment, only ambox uses this. textCell:cssText(self.textstyle or nil) local textCellDiv = textCell:tag('div') textCellDiv :addClass('mbox-text-span') :wikitext(self.issue or nil) if (self.talk or self.fix) then textCellDiv:tag('span') :addClass('hide-when-compact') :wikitext(self.talk and (' ' .. self.talk) or nil) :wikitext(self.fix and (' ' .. self.fix) or nil) end textCellDiv:wikitext(self.date and (' ' .. self.date) or nil) if self.info and not self.isSmall then textCellDiv :tag('span') :addClass('hide-when-compact') :wikitext(self.info and (' ' .. self.info) or nil) end if self.removalNotice then textCellDiv:tag('small') :addClass('hide-when-compact') :tag('i') :wikitext(string.format(" (%s)", self.removalNotice)) end else -- Default text formatting - anything goes. textCell :cssText(self.textstyle or nil) :wikitext(self.text or nil) end -- Add the right-hand image. if self.imageRight then local imageRightCell = row:tag('td'):addClass('mbox-imageright') if self.imageCellDiv then -- If we are using a div, redefine imageRightCell so that the image -- is inside it. imageRightCell = imageRightCell:tag('div'):css('width', '52px') end imageRightCell :wikitext(self.imageRight or nil) end -- Add the below row. if self.below then boxTable:tag('tr') :tag('td') :attr('colspan', self.imageRight and '3' or '2') :addClass('mbox-text') :cssText(self.textstyle or nil) :wikitext(self.below or nil) end -- Add error message for invalid type parameters. if self.invalidTypeError then root:tag('div') :css('text-align', 'center') :wikitext(string.format( 'This message box is using an invalid "type=%s" parameter and needs fixing.', self.type or '' )) end -- Add categories. root:wikitext(self:renderCategories() or nil) return tostring(root) end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p, mt = {}, {} function p._exportClasses() -- For testing. return { MessageBox = MessageBox } end function p.main(boxType, args, cfgTables) local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE)) box:setParameters() box:setCategories() return box:export() end function mt.__index(t, k) return function (frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return t.main(k, getArgs(frame, {trim = false, removeBlanks = false})) end end return setmetatable(p, mt) fcb7e5c5edcd23c62b8dc64ad6f4fcf981be83c1 Module:Message box/configuration 828 167 242 241 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- Message box configuration -- -- -- -- This module contains configuration data for [[Module:Message box]]. -- -------------------------------------------------------------------------------- return { ambox = { types = { speedy = { class = 'ambox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ambox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ambox-content', image = 'Ambox important.svg' }, style = { class = 'ambox-style', image = 'Edit-clear.svg' }, move = { class = 'ambox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ambox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ambox-notice', image = 'Information icon4.svg' } }, default = 'notice', allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'}, allowSmall = true, smallParam = 'left', smallClass = 'mbox-small-left', substCheck = true, classes = {'metadata', 'ambox'}, imageEmptyCell = true, imageCheckBlank = true, imageSmallSize = '20x20px', imageCellDiv = true, useCollapsibleTextFields = true, imageRightNone = true, sectionDefault = 'article', allowMainspaceCategories = true, templateCategory = 'Article message templates', templateCategoryRequireName = true, templateErrorCategory = 'Article message templates with missing parameters', templateErrorParamsToCheck = {'issue', 'fix', 'subst'}, removalNotice = '[[Help:Maintenance template removal|Learn how and when to remove this template message]]' }, cmbox = { types = { speedy = { class = 'cmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'cmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'cmbox-content', image = 'Ambox important.svg' }, style = { class = 'cmbox-style', image = 'Edit-clear.svg' }, move = { class = 'cmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'cmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'cmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'cmbox'}, imageEmptyCell = true }, fmbox = { types = { warning = { class = 'fmbox-warning', image = 'Ambox warning pn.svg' }, editnotice = { class = 'fmbox-editnotice', image = 'Information icon4.svg' }, system = { class = 'fmbox-system', image = 'Information icon4.svg' } }, default = 'system', showInvalidTypeError = true, classes = {'fmbox'}, imageEmptyCell = false, imageRightNone = false }, imbox = { types = { speedy = { class = 'imbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'imbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'imbox-content', image = 'Ambox important.svg' }, style = { class = 'imbox-style', image = 'Edit-clear.svg' }, move = { class = 'imbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'imbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, license = { class = 'imbox-license licensetpl', image = 'Imbox license.png' -- @todo We need an SVG version of this }, featured = { class = 'imbox-featured', image = 'Cscr-featured.svg' }, notice = { class = 'imbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'imbox'}, imageEmptyCell = true, below = true, templateCategory = 'File message boxes' }, ombox = { types = { speedy = { class = 'ombox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'ombox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'ombox-content', image = 'Ambox important.svg' }, style = { class = 'ombox-style', image = 'Edit-clear.svg' }, move = { class = 'ombox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'ombox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'ombox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'ombox'}, allowSmall = true, imageEmptyCell = true, imageRightNone = true }, tmbox = { types = { speedy = { class = 'tmbox-speedy', image = 'Ambox warning pn.svg' }, delete = { class = 'tmbox-delete', image = 'Ambox warning pn.svg' }, content = { class = 'tmbox-content', image = 'Ambox important.svg' }, style = { class = 'tmbox-style', image = 'Edit-clear.svg' }, move = { class = 'tmbox-move', image = 'Merge-split-transwiki default.svg' }, protection = { class = 'tmbox-protection', image = 'Semi-protection-shackle-keyhole.svg' }, notice = { class = 'tmbox-notice', image = 'Information icon4.svg' } }, default = 'notice', showInvalidTypeError = true, classes = {'tmbox'}, allowSmall = true, imageRightNone = true, imageEmptyCell = true, imageEmptyCellStyle = true, templateCategory = 'Talk message boxes' } } ef8171b8278c52d9c20a4149614d97cd948670c2 Module:No globals 828 168 244 243 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported Scribunto text/plain local mt = getmetatable(_G) or {} function mt.__index (t, k) if k ~= 'arg' then error('Tried to read nil global ' .. tostring(k), 2) end return nil end function mt.__newindex(t, k, v) if k ~= 'arg' then error('Tried to write global ' .. tostring(k), 2) end rawset(t, k, v) end setmetatable(_G, mt) 8ce3969f7d53b08bd00dabe4cc9780bc6afd412a Module:Category handler 828 169 246 245 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported Scribunto text/plain -------------------------------------------------------------------------------- -- -- -- CATEGORY HANDLER -- -- -- -- This module implements the {{category handler}} template in Lua, -- -- with a few improvements: all namespaces and all namespace aliases -- -- are supported, and namespace names are detected automatically for -- -- the local wiki. This module requires [[Module:Namespace detect]] -- -- and [[Module:Yesno]] to be available on the local wiki. It can be -- -- configured for different wikis by altering the values in -- -- [[Module:Category handler/config]], and pages can be blacklisted -- -- from categorisation by using [[Module:Category handler/blacklist]]. -- -- -- -------------------------------------------------------------------------------- -- Load required modules local yesno = require('Module:Yesno') -- Lazily load things we don't always need local mShared, mappings local p = {} -------------------------------------------------------------------------------- -- Helper functions -------------------------------------------------------------------------------- local function trimWhitespace(s, removeBlanks) if type(s) ~= 'string' then return s end s = s:match('^%s*(.-)%s*$') if removeBlanks then if s ~= '' then return s else return nil end else return s end end -------------------------------------------------------------------------------- -- CategoryHandler class -------------------------------------------------------------------------------- local CategoryHandler = {} CategoryHandler.__index = CategoryHandler function CategoryHandler.new(data, args) local obj = setmetatable({ _data = data, _args = args }, CategoryHandler) -- Set the title object do local pagename = obj:parameter('demopage') local success, titleObj if pagename then success, titleObj = pcall(mw.title.new, pagename) end if success and titleObj then obj.title = titleObj if titleObj == mw.title.getCurrentTitle() then obj._usesCurrentTitle = true end else obj.title = mw.title.getCurrentTitle() obj._usesCurrentTitle = true end end -- Set suppression parameter values for _, key in ipairs{'nocat', 'categories'} do local value = obj:parameter(key) value = trimWhitespace(value, true) obj['_' .. key] = yesno(value) end do local subpage = obj:parameter('subpage') local category2 = obj:parameter('category2') if type(subpage) == 'string' then subpage = mw.ustring.lower(subpage) end if type(category2) == 'string' then subpage = mw.ustring.lower(category2) end obj._subpage = trimWhitespace(subpage, true) obj._category2 = trimWhitespace(category2) -- don't remove blank values end return obj end function CategoryHandler:parameter(key) local parameterNames = self._data.parameters[key] local pntype = type(parameterNames) if pntype == 'string' or pntype == 'number' then return self._args[parameterNames] elseif pntype == 'table' then for _, name in ipairs(parameterNames) do local value = self._args[name] if value ~= nil then return value end end return nil else error(string.format( 'invalid config key "%s"', tostring(key) ), 2) end end function CategoryHandler:isSuppressedByArguments() return -- See if a category suppression argument has been set. self._nocat == true or self._categories == false or ( self._category2 and self._category2 ~= self._data.category2Yes and self._category2 ~= self._data.category2Negative ) -- Check whether we are on a subpage, and see if categories are -- suppressed based on our subpage status. or self._subpage == self._data.subpageNo and self.title.isSubpage or self._subpage == self._data.subpageOnly and not self.title.isSubpage end function CategoryHandler:shouldSkipBlacklistCheck() -- Check whether the category suppression arguments indicate we -- should skip the blacklist check. return self._nocat == false or self._categories == true or self._category2 == self._data.category2Yes end function CategoryHandler:matchesBlacklist() if self._usesCurrentTitle then return self._data.currentTitleMatchesBlacklist else mShared = mShared or require('Module:Category handler/shared') return mShared.matchesBlacklist( self.title.prefixedText, mw.loadData('Module:Category handler/blacklist') ) end end function CategoryHandler:isSuppressed() -- Find if categories are suppressed by either the arguments or by -- matching the blacklist. return self:isSuppressedByArguments() or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist() end function CategoryHandler:getNamespaceParameters() if self._usesCurrentTitle then return self._data.currentTitleNamespaceParameters else if not mappings then mShared = mShared or require('Module:Category handler/shared') mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData end return mShared.getNamespaceParameters( self.title, mappings ) end end function CategoryHandler:namespaceParametersExist() -- Find whether any namespace parameters have been specified. -- We use the order "all" --> namespace params --> "other" as this is what -- the old template did. if self:parameter('all') then return true end if not mappings then mShared = mShared or require('Module:Category handler/shared') mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData end for ns, params in pairs(mappings) do for i, param in ipairs(params) do if self._args[param] then return true end end end if self:parameter('other') then return true end return false end function CategoryHandler:getCategories() local params = self:getNamespaceParameters() local nsCategory for i, param in ipairs(params) do local value = self._args[param] if value ~= nil then nsCategory = value break end end if nsCategory ~= nil or self:namespaceParametersExist() then -- Namespace parameters exist - advanced usage. if nsCategory == nil then nsCategory = self:parameter('other') end local ret = {self:parameter('all')} local numParam = tonumber(nsCategory) if numParam and numParam >= 1 and math.floor(numParam) == numParam then -- nsCategory is an integer ret[#ret + 1] = self._args[numParam] else ret[#ret + 1] = nsCategory end if #ret < 1 then return nil else return table.concat(ret) end elseif self._data.defaultNamespaces[self.title.namespace] then -- Namespace parameters don't exist, simple usage. return self._args[1] end return nil end -------------------------------------------------------------------------------- -- Exports -------------------------------------------------------------------------------- local p = {} function p._exportClasses() -- Used for testing purposes. return { CategoryHandler = CategoryHandler } end function p._main(args, data) data = data or mw.loadData('Module:Category handler/data') local handler = CategoryHandler.new(data, args) if handler:isSuppressed() then return nil end return handler:getCategories() end function p.main(frame, data) data = data or mw.loadData('Module:Category handler/data') local args = require('Module:Arguments').getArgs(frame, { wrappers = data.wrappers, valueFunc = function (k, v) v = trimWhitespace(v) if type(k) == 'number' then if v ~= '' then return v else return nil end else return v end end }) return p._main(args, data) end return p b74dd63857b24904ac452429b11213f18647471f Module:Yesno 828 170 248 247 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported Scribunto text/plain -- Function allowing for consistent treatment of boolean-like wikitext input. -- It works similarly to the template {{yesno}}. return function (val, default) -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you -- should replace "val:lower()" with "mw.ustring.lower(val)" in the -- following line. val = type(val) == 'string' and val:lower() or val if val == nil then return nil elseif val == true or val == 'yes' or val == 'y' or val == 'true' or val == 't' or val == 'on' or tonumber(val) == 1 then return true elseif val == false or val == 'no' or val == 'n' or val == 'false' or val == 'f' or val == 'off' or tonumber(val) == 0 then return false else return default end end f767643e7d12126d020d88d662a3dd057817b9dc Category:Mbox and messagebox templates 14 171 250 249 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{Template category | type = function | description = '''{{tlbare|Mbox}}-based and Mbox-like messagebox templates.''' }} [[Category:Box templates]] [[Category:Wikipedia administration templates]] [[Category:Wikipedia metatemplates]] eac6cec6b7dedd0da2451f8e962541bc6e020f99 Category:Article message templates 14 172 252 251 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{see also|:Category:Under-construction templates}} {{Wikipedia category|tracking=y}} {{Category used by module|[[Module:Message box/configuration]]}} {{template category|description=This category automatically includes all templates using {{Tlg|Ambox}} which have their {{Para|name}} parameter set.}} {{CatAutoTOC}} [[Category:Wikipedia message box templates]] [[Category:Article namespace templates|message]] 81d88cc7252ffaba302b074559273b00a8be8ca8 Category:Wikipedia progress templates 14 173 254 253 2021-04-04T14:01:13Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{template category|description=Templates indicating progress in various Wikipedia tasks.}} See also {{tl|Progress templates}}. <!--Categories--> [[Category:Wikipedia notification templates]] e5e5cafdd7c520254459eb9b8406d7972e02bebf Template:High-use 10 174 256 255 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#invoke:High-use|main|1={{{1|}}}|2={{{2|}}}|all-pages={{{all-pages|}}}|info={{{info|}}}|demo={{{demo|}}}|form={{{form|}}}|expiry={{{expiry|}}}}}<noinclude> {{Documentation}} <!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --> </noinclude> a0b2a1139d339dbb30f81db49ec4775f8d55871f Template:Lua 10 175 258 257 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Lua banner|main}}</includeonly><noinclude> {{Lua|Module:Lua banner}} {{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> dba3962144dacd289dbc34f50fbe0a7bf6d7f2f7 Template:Module other 10 176 260 259 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#switch: <!--If no or empty "demospace" parameter then detect namespace--> {{#if:{{{demospace|}}} | {{lc: {{{demospace}}} }} <!--Use lower case "demospace"--> | {{#ifeq:{{NAMESPACE}}|{{ns:Module}} | module | other }} }} | module = {{{1|}}} | other | #default = {{{2|}}} }}<!--End switch--><noinclude> {{documentation}} <!-- Add categories to the /doc subpage, not here! --> </noinclude> 503694836c1b07142e63fd35d8be69ec8bb9ffe7 Template:Module rating 10 177 262 261 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki <includeonly>{{Module other|{{ombox | type = notice | image = {{#switch: {{{1|}}} | pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=|alt=Pre-alpha]] | alpha | a = [[File:Alpha lowercase.svg|26x26px|link=|alt=Alpha]] | beta | b = [[File:Greek lc beta.svg|40x40px|link=|alt=Beta]] | release | r | general | g = [[File:Green check.svg|40x40px|link=|alt=Ready for use]] | protected | protect | p = [[File:{{#switch:{{#invoke:Effective protection level|edit|{{#switch:{{SUBPAGENAME}}|doc|sandbox={{FULLBASEPAGENAME}}|{{FULLPAGENAME}}}}}}|autoconfirmed=Semi|extendedconfirmed=Extended|accountcreator|templateeditor=Template|#default=Full}}-protection-shackle.svg|40x40px|link=|alt=Protected]] | semiprotected | semiprotect | semi =[[File:Semi-protection-shackle.svg|40x40px|link=|alt=Semi-protected]] }} | style = | textstyle = | text = {{#switch: {{{1|}}} | pre-alpha | prealpha | pa = This module is rated as [[:Category:Modules in pre-alpha development|pre-alpha]]. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages. Modules remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in pre-alpha development|{{PAGENAME}}]] }} }} | alpha | a = This module is rated as [[:Category:Modules in alpha|alpha]]. It is ready for third-party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in alpha|{{PAGENAME}}]] }} }} | beta | b = This module is rated as [[:Category:Modules in beta|beta]], and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules in beta|{{PAGENAME}}]] }} }} | release | r | general | g = This module is rated as [[:Category:Modules for general use|ready for general use]]. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by [[Wikipedia:Template sandbox and test cases|sandbox testing]] rather than repeated trial-and-error editing.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules for general use|{{PAGENAME}}]] }} }} | protected | protect | p = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, or is [[Wikipedia:Substitution|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[Wikipedia:Protection policy|protected]] from editing.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules subject to page protection|{{PAGENAME}}]] }} }} | semiprotected | semiprotect | semi = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, or is [[Wikipedia:Substitution|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[WP:SEMI|semi-protected]] from editing.<!-- -->{{#switch: {{SUBPAGENAME}}|doc|sandbox=<!-- No category for /doc or /sandbox subpages --> | {{#ifeq: {{{nocat|}}} | true | <!-- No category if user sets nocat=true --> | [[Category:Modules subject to page protection|{{PAGENAME}}]] }} }} | #default = {{error|Module rating is invalid or not specified.}} }} }}|{{error|Error: {{tl|Module rating}} must be placed in the Module namespace.}} [[Category:Pages with templates in the wrong namespace]]|demospace={{{demospace|<noinclude>module</noinclude>}}}}}</includeonly><noinclude> {{module rating|release|nocat=true|demospace=module}} {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go in Wikidata. --> </noinclude> fa09f5dfdee6e8f216e15aaabf83f4fc95a94ff6 Template:Ombox 10 178 264 263 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#invoke:Message box|ombox}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> 0e54065432d540737b9e56c4e3a8e7f74d4534ea Template:Sandbox other 10 179 266 265 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#if:{{#ifeq:{{#invoke:String|sublength|s={{SUBPAGENAME}}|i=0|len=7}}|sandbox|1}}{{#ifeq:{{SUBPAGENAME}}|doc|1}}{{#invoke:String|match|{{PAGENAME}}|/sandbox/styles.css$|plain=false|nomatch=}}|{{{1|}}}|{{{2|}}}}}<!-- --><noinclude>{{documentation}}</noinclude> 91e4ae891d6b791615152c1fbc971414961ba872 Template:Tag 10 180 268 267 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki <code class="{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}" style="{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}"><!-- Opening tag -->{{#switch:{{{2|pair}}} |c|close = |e|empty|s|single|v|void |o|open |p|pair = &lt;{{#if:{{{link|}}}|[[HTML element#{{{1|tag}}}|{{{1|tag}}}]]|{{{1|tag}}}}}{{#if:{{{params|{{{attribs|}}}}}}|&#32;{{{params|{{{attribs}}}}}}}} }}<!-- Content between tags -->{{#switch:{{{2|pair}}} |c|close = {{{content|}}} |e|empty|s|single|v|void = &#32;&#47;&gt; |o|open = &gt;{{{content|}}} |p|pair = {{#ifeq:{{{1|tag}}}|!--||&gt;}}{{{content|...}}} }}<!-- Closing tag -->{{#switch:{{{2|pair}}} |e|empty|s|single|v|void |o|open = |c|close |p|pair = {{#ifeq:{{{1|tag}}}|!--|--&gt;|&lt;&#47;{{{1|tag}}}&gt;}} }}<!-- --></code><noinclude> {{Documentation}} </noinclude> eae208bc1612c834de697fa3ee9b343966cf8602 Template:Template link 10 181 270 269 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki &#123;&#123;[[Template:{{{1}}}|{{{1}}}]]&#125;&#125;<noinclude>{{documentation}} <!-- Categories go on the /doc subpage and interwikis go on Wikidata. --> </noinclude> eabbec62efe3044a98ebb3ce9e7d4d43c222351d Template:Tl 10 182 272 271 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki #REDIRECT [[Template:Template link]] {{Redirect category shell| {{R from move}} }} d6593bb3b4a866249f55d0f34b047a71fe1f1529 Template:Used in system 10 183 274 273 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{ombox | type = content | text = '''This {{lcfirst:{{NAMESPACE}}}} is used {{#if:{{{1|}}}|{{{1}}}|in system messages}}.''' <br /> Changes to it can cause immediate changes to the Wikipedia user interface. {{#ifeq:{{NAMESPACENUMBER}}|6||To avoid large-scale disruption, any changes should first be tested in this {{lcfirst:{{NAMESPACE}}}}'s [[{{Sandbox other|{{SUBJECTSPACE}}:{{BASEPAGENAME}}|{{SUBJECTPAGENAME}}}}/sandbox|/sandbox]] or [[{{Sandbox other|{{SUBJECTSPACE}}:{{BASEPAGENAME}}|{{SUBJECTPAGENAME}}}}/testcases|/testcases]] subpage, or in your own [[Wikipedia:Subpages#How to create user subpages|user space]]. The tested changes can then be added in one single edit to this {{lcfirst:{{NAMESPACE}}}}.}} Please discuss any changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{Sandbox other|{{TALKSPACE}}:{{BASEPAGENAME}}|{{TALKPAGENAME}}}}|talk page]]}} before implementing them. }}<includeonly>{{Sandbox other||{{#switch:{{#invoke:Effective protection level|{{#switch:{{NAMESPACE}}|File=upload|#default=edit}}|{{FULLPAGENAME}}}}|sysop|templateeditor|interfaceadmin=|#default={{category handler|all=[[Category:Pages used in system messages needing protection]]|nocat={{{nocat|}}}}}}}}}</includeonly><noinclude> {{documentation}}<!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> eafbcb1326e5af4666730af4a931f294960a0965 Module:Arguments 828 184 276 275 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported Scribunto text/plain -- This module provides easy processing of arguments passed to Scribunto from -- #invoke. It is intended for use by other Lua modules, and should not be -- called from #invoke directly. local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local arguments = {} -- Generate four different tidyVal functions, so that we don't have to check the -- options every time we call it. local function tidyValDefault(key, val) if type(val) == 'string' then val = val:match('^%s*(.-)%s*$') if val == '' then return nil else return val end else return val end end local function tidyValTrimOnly(key, val) if type(val) == 'string' then return val:match('^%s*(.-)%s*$') else return val end end local function tidyValRemoveBlanksOnly(key, val) if type(val) == 'string' then if val:find('%S') then return val else return nil end else return val end end local function tidyValNoChange(key, val) return val end local function matchesTitle(given, title) local tp = type( given ) return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title end local translate_mt = { __index = function(t, k) return k end } function arguments.getArgs(frame, options) checkType('getArgs', 1, frame, 'table', true) checkType('getArgs', 2, options, 'table', true) frame = frame or {} options = options or {} --[[ -- Set up argument translation. --]] options.translate = options.translate or {} if getmetatable(options.translate) == nil then setmetatable(options.translate, translate_mt) end if options.backtranslate == nil then options.backtranslate = {} for k,v in pairs(options.translate) do options.backtranslate[v] = k end end if options.backtranslate and getmetatable(options.backtranslate) == nil then setmetatable(options.backtranslate, { __index = function(t, k) if options.translate[k] ~= k then return nil else return k end end }) end --[[ -- Get the argument tables. If we were passed a valid frame object, get the -- frame arguments (fargs) and the parent frame arguments (pargs), depending -- on the options set and on the parent frame's availability. If we weren't -- passed a valid frame object, we are being called from another Lua module -- or from the debug console, so assume that we were passed a table of args -- directly, and assign it to a new variable (luaArgs). --]] local fargs, pargs, luaArgs if type(frame.args) == 'table' and type(frame.getParent) == 'function' then if options.wrappers then --[[ -- The wrappers option makes Module:Arguments look up arguments in -- either the frame argument table or the parent argument table, but -- not both. This means that users can use either the #invoke syntax -- or a wrapper template without the loss of performance associated -- with looking arguments up in both the frame and the parent frame. -- Module:Arguments will look up arguments in the parent frame -- if it finds the parent frame's title in options.wrapper; -- otherwise it will look up arguments in the frame object passed -- to getArgs. --]] local parent = frame:getParent() if not parent then fargs = frame.args else local title = parent:getTitle():gsub('/sandbox$', '') local found = false if matchesTitle(options.wrappers, title) then found = true elseif type(options.wrappers) == 'table' then for _,v in pairs(options.wrappers) do if matchesTitle(v, title) then found = true break end end end -- We test for false specifically here so that nil (the default) acts like true. if found or options.frameOnly == false then pargs = parent.args end if not found or options.parentOnly == false then fargs = frame.args end end else -- options.wrapper isn't set, so check the other options. if not options.parentOnly then fargs = frame.args end if not options.frameOnly then local parent = frame:getParent() pargs = parent and parent.args or nil end end if options.parentFirst then fargs, pargs = pargs, fargs end else luaArgs = frame end -- Set the order of precedence of the argument tables. If the variables are -- nil, nothing will be added to the table, which is how we avoid clashes -- between the frame/parent args and the Lua args. local argTables = {fargs} argTables[#argTables + 1] = pargs argTables[#argTables + 1] = luaArgs --[[ -- Generate the tidyVal function. If it has been specified by the user, we -- use that; if not, we choose one of four functions depending on the -- options chosen. This is so that we don't have to call the options table -- every time the function is called. --]] local tidyVal = options.valueFunc if tidyVal then if type(tidyVal) ~= 'function' then error( "bad value assigned to option 'valueFunc'" .. '(function expected, got ' .. type(tidyVal) .. ')', 2 ) end elseif options.trim ~= false then if options.removeBlanks ~= false then tidyVal = tidyValDefault else tidyVal = tidyValTrimOnly end else if options.removeBlanks ~= false then tidyVal = tidyValRemoveBlanksOnly else tidyVal = tidyValNoChange end end --[[ -- Set up the args, metaArgs and nilArgs tables. args will be the one -- accessed from functions, and metaArgs will hold the actual arguments. Nil -- arguments are memoized in nilArgs, and the metatable connects all of them -- together. --]] local args, metaArgs, nilArgs, metatable = {}, {}, {}, {} setmetatable(args, metatable) local function mergeArgs(tables) --[[ -- Accepts multiple tables as input and merges their keys and values -- into one table. If a value is already present it is not overwritten; -- tables listed earlier have precedence. We are also memoizing nil -- values, which can be overwritten if they are 's' (soft). --]] for _, t in ipairs(tables) do for key, val in pairs(t) do if metaArgs[key] == nil and nilArgs[key] ~= 'h' then local tidiedVal = tidyVal(key, val) if tidiedVal == nil then nilArgs[key] = 's' else metaArgs[key] = tidiedVal end end end end end --[[ -- Define metatable behaviour. Arguments are memoized in the metaArgs table, -- and are only fetched from the argument tables once. Fetching arguments -- from the argument tables is the most resource-intensive step in this -- module, so we try and avoid it where possible. For this reason, nil -- arguments are also memoized, in the nilArgs table. Also, we keep a record -- in the metatable of when pairs and ipairs have been called, so we do not -- run pairs and ipairs on the argument tables more than once. We also do -- not run ipairs on fargs and pargs if pairs has already been run, as all -- the arguments will already have been copied over. --]] metatable.__index = function (t, key) --[[ -- Fetches an argument when the args table is indexed. First we check -- to see if the value is memoized, and if not we try and fetch it from -- the argument tables. When we check memoization, we need to check -- metaArgs before nilArgs, as both can be non-nil at the same time. -- If the argument is not present in metaArgs, we also check whether -- pairs has been run yet. If pairs has already been run, we return nil. -- This is because all the arguments will have already been copied into -- metaArgs by the mergeArgs function, meaning that any other arguments -- must be nil. --]] if type(key) == 'string' then key = options.translate[key] end local val = metaArgs[key] if val ~= nil then return val elseif metatable.donePairs or nilArgs[key] then return nil end for _, argTable in ipairs(argTables) do local argTableVal = tidyVal(key, argTable[key]) if argTableVal ~= nil then metaArgs[key] = argTableVal return argTableVal end end nilArgs[key] = 'h' return nil end metatable.__newindex = function (t, key, val) -- This function is called when a module tries to add a new value to the -- args table, or tries to change an existing value. if type(key) == 'string' then key = options.translate[key] end if options.readOnly then error( 'could not write to argument table key "' .. tostring(key) .. '"; the table is read-only', 2 ) elseif options.noOverwrite and args[key] ~= nil then error( 'could not write to argument table key "' .. tostring(key) .. '"; overwriting existing arguments is not permitted', 2 ) elseif val == nil then --[[ -- If the argument is to be overwritten with nil, we need to erase -- the value in metaArgs, so that __index, __pairs and __ipairs do -- not use a previous existing value, if present; and we also need -- to memoize the nil in nilArgs, so that the value isn't looked -- up in the argument tables if it is accessed again. --]] metaArgs[key] = nil nilArgs[key] = 'h' else metaArgs[key] = val end end local function translatenext(invariant) local k, v = next(invariant.t, invariant.k) invariant.k = k if k == nil then return nil elseif type(k) ~= 'string' or not options.backtranslate then return k, v else local backtranslate = options.backtranslate[k] if backtranslate == nil then -- Skip this one. This is a tail call, so this won't cause stack overflow return translatenext(invariant) else return backtranslate, v end end end metatable.__pairs = function () -- Called when pairs is run on the args table. if not metatable.donePairs then mergeArgs(argTables) metatable.donePairs = true end return translatenext, { t = metaArgs } end local function inext(t, i) -- This uses our __index metamethod local v = t[i + 1] if v ~= nil then return i + 1, v end end metatable.__ipairs = function (t) -- Called when ipairs is run on the args table. return inext, t, 0 end return args end return arguments 3134ecce8429b810d445e29eae115e2ae4c36c53 Module:Documentation 828 185 278 277 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported Scribunto text/plain -- This module implements {{documentation}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs -- Get the config table. local cfg = mw.loadData('Module:Documentation/config') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in the p -- table for testing purposes. ---------------------------------------------------------------------------- local function message(cfgKey, valArray, expectType) --[[ -- Gets a message from the cfg table and formats it if appropriate. -- The function raises an error if the value from the cfg table is not -- of the type expectType. The default type for expectType is 'string'. -- If the table valArray is present, strings such as $1, $2 etc. in the -- message are substituted with values from the table keys [1], [2] etc. -- For example, if the message "foo-message" had the value 'Foo $2 bar $1.', -- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz." --]] local msg = cfg[cfgKey] expectType = expectType or 'string' if type(msg) ~= expectType then error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2) end if not valArray then return msg end local function getMessageVal(match) match = tonumber(match) return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4) end return ugsub(msg, '$([1-9][0-9]*)', getMessageVal) end p.message = message local function makeWikilink(page, display) if display then return mw.ustring.format('[[%s|%s]]', page, display) else return mw.ustring.format('[[%s]]', page) end end p.makeWikilink = makeWikilink local function makeCategoryLink(cat, sort) local catns = mw.site.namespaces[14].name return makeWikilink(catns .. ':' .. cat, sort) end p.makeCategoryLink = makeCategoryLink local function makeUrlLink(url, display) return mw.ustring.format('[%s %s]', url, display) end p.makeUrlLink = makeUrlLink local function makeToolbar(...) local ret = {} local lim = select('#', ...) if lim < 1 then return nil end for i = 1, lim do ret[#ret + 1] = select(i, ...) end -- 'documentation-toolbar' return '<span class="' .. message('toolbar-class') .. '">(' .. table.concat(ret, ' &#124; ') .. ')</span>' end p.makeToolbar = makeToolbar ---------------------------------------------------------------------------- -- Argument processing ---------------------------------------------------------------------------- local function makeInvokeFunc(funcName) return function (frame) local args = getArgs(frame, { valueFunc = function (key, value) if type(value) == 'string' then value = value:match('^%s*(.-)%s*$') -- Remove whitespace. if key == 'heading' or value ~= '' then return value else return nil end else return value end end }) return p[funcName](args) end end ---------------------------------------------------------------------------- -- Entry points ---------------------------------------------------------------------------- function p.nonexistent(frame) if mw.title.getCurrentTitle().subpageText == 'testcases' then return frame:expandTemplate{title = 'module test cases notice'} else return p.main(frame) end end p.main = makeInvokeFunc('_main') function p._main(args) --[[ -- This function defines logic flow for the module. -- @args - table of arguments passed by the user --]] local env = p.getEnvironment(args) local root = mw.html.create() root :wikitext(p._getModuleWikitext(args, env)) :wikitext(p.protectionTemplate(env)) :wikitext(p.sandboxNotice(args, env)) :tag('div') -- 'documentation-container' :addClass(message('container')) :newline() :tag('div') -- 'documentation' :addClass(message('main-div-classes')) :newline() :wikitext(p._startBox(args, env)) :wikitext(p._content(args, env)) :tag('div') -- 'documentation-clear' :addClass(message('clear')) :done() :newline() :done() :wikitext(p._endBox(args, env)) :done() :wikitext(p.addTrackingCategories(env)) -- 'Module:Documentation/styles.css' return mw.getCurrentFrame():extensionTag ( 'templatestyles', '', {src=cfg['templatestyles'] }) .. tostring(root) end ---------------------------------------------------------------------------- -- Environment settings ---------------------------------------------------------------------------- function p.getEnvironment(args) --[[ -- Returns a table with information about the environment, including title -- objects and other namespace- or path-related data. -- @args - table of arguments passed by the user -- -- Title objects include: -- env.title - the page we are making documentation for (usually the current title) -- env.templateTitle - the template (or module, file, etc.) -- env.docTitle - the /doc subpage. -- env.sandboxTitle - the /sandbox subpage. -- env.testcasesTitle - the /testcases subpage. -- env.printTitle - the print version of the template, located at the /Print subpage. -- -- Data includes: -- env.protectionLevels - the protection levels table of the title object. -- env.subjectSpace - the number of the title's subject namespace. -- env.docSpace - the number of the namespace the title puts its documentation in. -- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace. -- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template. -- -- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value -- returned will be nil. --]] local env, envFuncs = {}, {} -- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value -- returned by that function is memoized in the env table so that we don't call any of the functions -- more than once. (Nils won't be memoized.) setmetatable(env, { __index = function (t, key) local envFunc = envFuncs[key] if envFunc then local success, val = pcall(envFunc) if success then env[key] = val -- Memoise the value. return val end end return nil end }) function envFuncs.title() -- The title object for the current page, or a test page passed with args.page. local title local titleArg = args.page if titleArg then title = mw.title.new(titleArg) else title = mw.title.getCurrentTitle() end return title end function envFuncs.templateTitle() --[[ -- The template (or module, etc.) title object. -- Messages: -- 'sandbox-subpage' --> 'sandbox' -- 'testcases-subpage' --> 'testcases' --]] local subjectSpace = env.subjectSpace local title = env.title local subpage = title.subpageText if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then return mw.title.makeTitle(subjectSpace, title.baseText) else return mw.title.makeTitle(subjectSpace, title.text) end end function envFuncs.docTitle() --[[ -- Title object of the /doc subpage. -- Messages: -- 'doc-subpage' --> 'doc' --]] local title = env.title local docname = args[1] -- User-specified doc page. local docpage if docname then docpage = docname else docpage = env.docpageBase .. '/' .. message('doc-subpage') end return mw.title.new(docpage) end function envFuncs.sandboxTitle() --[[ -- Title object for the /sandbox subpage. -- Messages: -- 'sandbox-subpage' --> 'sandbox' --]] return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage')) end function envFuncs.testcasesTitle() --[[ -- Title object for the /testcases subpage. -- Messages: -- 'testcases-subpage' --> 'testcases' --]] return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage')) end function envFuncs.printTitle() --[[ -- Title object for the /Print subpage. -- Messages: -- 'print-subpage' --> 'Print' --]] return env.templateTitle:subPageTitle(message('print-subpage')) end function envFuncs.protectionLevels() -- The protection levels table of the title object. return env.title.protectionLevels end function envFuncs.subjectSpace() -- The subject namespace number. return mw.site.namespaces[env.title.namespace].subject.id end function envFuncs.docSpace() -- The documentation namespace number. For most namespaces this is the -- same as the subject namespace. However, pages in the Article, File, -- MediaWiki or Category namespaces must have their /doc, /sandbox and -- /testcases pages in talk space. local subjectSpace = env.subjectSpace if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then return subjectSpace + 1 else return subjectSpace end end function envFuncs.docpageBase() -- The base page of the /doc, /sandbox, and /testcases subpages. -- For some namespaces this is the talk page, rather than the template page. local templateTitle = env.templateTitle local docSpace = env.docSpace local docSpaceText = mw.site.namespaces[docSpace].name -- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon. return docSpaceText .. ':' .. templateTitle.text end function envFuncs.compareUrl() -- Diff link between the sandbox and the main template using [[Special:ComparePages]]. local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle if templateTitle.exists and sandboxTitle.exists then local compareUrl = mw.uri.fullUrl( 'Special:ComparePages', { page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText} ) return tostring(compareUrl) else return nil end end return env end ---------------------------------------------------------------------------- -- Auxiliary templates ---------------------------------------------------------------------------- p.getModuleWikitext = makeInvokeFunc('_getModuleWikitext') function p._getModuleWikitext(args, env) local currentTitle = mw.title.getCurrentTitle() if currentTitle.contentModel ~= 'Scribunto' then return end pcall(require, currentTitle.prefixedText) -- if it fails, we don't care local moduleWikitext = package.loaded["Module:Module wikitext"] if moduleWikitext then return moduleWikitext.main() end end function p.sandboxNotice(args, env) --[=[ -- Generates a sandbox notice for display above sandbox pages. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]' -- 'sandbox-notice-blurb' --> 'This is the $1 for $2.' -- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).' -- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page' -- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page' -- 'sandbox-notice-pagetype-other' --> 'sandbox page' -- 'sandbox-notice-compare-link-display' --> 'diff' -- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.' -- 'sandbox-notice-testcases-link-display' --> 'test cases' -- 'sandbox-category' --> 'Template sandboxes' --]=] local title = env.title local sandboxTitle = env.sandboxTitle local templateTitle = env.templateTitle local subjectSpace = env.subjectSpace if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then return nil end -- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text". local omargs = {} omargs.image = message('sandbox-notice-image') -- Get the text. We start with the opening blurb, which is something like -- "This is the template sandbox for [[Template:Foo]] (diff)." local text = '' local pagetype if subjectSpace == 10 then pagetype = message('sandbox-notice-pagetype-template') elseif subjectSpace == 828 then pagetype = message('sandbox-notice-pagetype-module') else pagetype = message('sandbox-notice-pagetype-other') end local templateLink = makeWikilink(templateTitle.prefixedText) local compareUrl = env.compareUrl if compareUrl then local compareDisplay = message('sandbox-notice-compare-link-display') local compareLink = makeUrlLink(compareUrl, compareDisplay) text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink}) else text = text .. message('sandbox-notice-blurb', {pagetype, templateLink}) end -- Get the test cases page blurb if the page exists. This is something like -- "See also the companion subpage for [[Template:Foo/testcases|test cases]]." local testcasesTitle = env.testcasesTitle if testcasesTitle and testcasesTitle.exists then if testcasesTitle.contentModel == "Scribunto" then local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink}) else local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display') local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay) text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink}) end end -- Add the sandbox to the sandbox category. omargs.text = text .. makeCategoryLink(message('sandbox-category')) -- 'documentation-clear' return '<div class="' .. message('clear') .. '"></div>' .. require('Module:Message box').main('ombox', omargs) end function p.protectionTemplate(env) -- Generates the padlock icon in the top right. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'protection-template' --> 'pp-template' -- 'protection-template-args' --> {docusage = 'yes'} local protectionLevels = env.protectionLevels if not protectionLevels then return nil end local editProt = protectionLevels.edit and protectionLevels.edit[1] local moveProt = protectionLevels.move and protectionLevels.move[1] if editProt then -- The page is edit-protected. return require('Module:Protection banner')._main{ message('protection-reason-edit'), small = true } elseif moveProt and moveProt ~= 'autoconfirmed' then -- The page is move-protected but not edit-protected. Exclude move -- protection with the level "autoconfirmed", as this is equivalent to -- no move protection at all. return require('Module:Protection banner')._main{ action = 'move', small = true } else return nil end end ---------------------------------------------------------------------------- -- Start box ---------------------------------------------------------------------------- p.startBox = makeInvokeFunc('_startBox') function p._startBox(args, env) --[[ -- This function generates the start box. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make -- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox -- which generate the box HTML. --]] env = env or p.getEnvironment(args) local links local content = args.content if not content or args[1] then -- No need to include the links if the documentation is on the template page itself. local linksData = p.makeStartBoxLinksData(args, env) if linksData then links = p.renderStartBoxLinks(linksData) end end -- Generate the start box html. local data = p.makeStartBoxData(args, env, links) if data then return p.renderStartBox(data) else -- User specified no heading. return nil end end function p.makeStartBoxLinksData(args, env) --[[ -- Does initial processing of data to make the [view] [edit] [history] [purge] links. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'view-link-display' --> 'view' -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'purge-link-display' --> 'purge' -- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'docpage-preload' --> 'Template:Documentation/preload' -- 'create-link-display' --> 'create' --]] local subjectSpace = env.subjectSpace local title = env.title local docTitle = env.docTitle if not title or not docTitle then return nil end if docTitle.isRedirect then docTitle = docTitle.redirectTarget end local data = {} data.title = title data.docTitle = docTitle -- View, display, edit, and purge links if /doc exists. data.viewLinkDisplay = message('view-link-display') data.editLinkDisplay = message('edit-link-display') data.historyLinkDisplay = message('history-link-display') data.purgeLinkDisplay = message('purge-link-display') -- Create link if /doc doesn't exist. local preload = args.preload if not preload then if subjectSpace == 6 then -- File namespace preload = message('file-docpage-preload') elseif subjectSpace == 828 then -- Module namespace preload = message('module-preload') else preload = message('docpage-preload') end end data.preload = preload data.createLinkDisplay = message('create-link-display') return data end function p.renderStartBoxLinks(data) --[[ -- Generates the [view][edit][history][purge] or [create] links from the data table. -- @data - a table of data generated by p.makeStartBoxLinksData --]] local function escapeBrackets(s) -- Escapes square brackets with HTML entities. s = s:gsub('%[', '&#91;') -- Replace square brackets with HTML entities. s = s:gsub('%]', '&#93;') return s end local ret local docTitle = data.docTitle local title = data.title if docTitle.exists then local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay) local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay) local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay) local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay) ret = '[%s] [%s] [%s] [%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink) else local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay) ret = '[%s]' ret = escapeBrackets(ret) ret = mw.ustring.format(ret, createLink) end return ret end function p.makeStartBoxData(args, env, links) --[=[ -- Does initial processing of data to pass to the start-box render function, p.renderStartBox. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error. -- -- Messages: -- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- 'template-namespace-heading' --> 'Template documentation' -- 'module-namespace-heading' --> 'Module documentation' -- 'file-namespace-heading' --> 'Summary' -- 'other-namespaces-heading' --> 'Documentation' -- 'testcases-create-link-display' --> 'create' --]=] local subjectSpace = env.subjectSpace if not subjectSpace then -- Default to an "other namespaces" namespace, so that we get at least some output -- if an error occurs. subjectSpace = 2 end local data = {} -- Heading local heading = args.heading -- Blank values are not removed. if heading == '' then -- Don't display the start box if the heading arg is defined but blank. return nil end if heading then data.heading = heading elseif subjectSpace == 10 then -- Template namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading') elseif subjectSpace == 828 then -- Module namespace data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading') elseif subjectSpace == 6 then -- File namespace data.heading = message('file-namespace-heading') else data.heading = message('other-namespaces-heading') end -- Heading CSS local headingStyle = args['heading-style'] if headingStyle then data.headingStyleText = headingStyle else -- 'documentation-heading' data.headingClass = message('main-div-heading-class') end -- Data for the [view][edit][history][purge] or [create] links. if links then -- 'mw-editsection-like plainlinks' data.linksClass = message('start-box-link-classes') data.links = links end return data end function p.renderStartBox(data) -- Renders the start box html. -- @data - a table of data generated by p.makeStartBoxData. local sbox = mw.html.create('div') sbox -- 'documentation-startbox' :addClass(message('start-box-class')) :newline() :tag('span') :addClass(data.headingClass) :cssText(data.headingStyleText) :wikitext(data.heading) local links = data.links if links then sbox:tag('span') :addClass(data.linksClass) :attr('id', data.linksId) :wikitext(links) end return tostring(sbox) end ---------------------------------------------------------------------------- -- Documentation content ---------------------------------------------------------------------------- p.content = makeInvokeFunc('_content') function p._content(args, env) -- Displays the documentation contents -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment env = env or p.getEnvironment(args) local docTitle = env.docTitle local content = args.content if not content and docTitle and docTitle.exists then content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText} end -- The line breaks below are necessary so that "=== Headings ===" at the start and end -- of docs are interpreted correctly. return '\n' .. (content or '') .. '\n' end p.contentTitle = makeInvokeFunc('_contentTitle') function p._contentTitle(args, env) env = env or p.getEnvironment(args) local docTitle = env.docTitle if not args.content and docTitle and docTitle.exists then return docTitle.prefixedText else return '' end end ---------------------------------------------------------------------------- -- End box ---------------------------------------------------------------------------- p.endBox = makeInvokeFunc('_endBox') function p._endBox(args, env) --[=[ -- This function generates the end box (also known as the link box). -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- --]=] -- Get environment data. env = env or p.getEnvironment(args) local subjectSpace = env.subjectSpace local docTitle = env.docTitle if not subjectSpace or not docTitle then return nil end -- Check whether we should output the end box at all. Add the end -- box by default if the documentation exists or if we are in the -- user, module or template namespaces. local linkBox = args['link box'] if linkBox == 'off' or not ( docTitle.exists or subjectSpace == 2 or subjectSpace == 828 or subjectSpace == 10 ) then return nil end -- Assemble the link box. local text = '' if linkBox then text = text .. linkBox else text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]." if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then -- We are in the user, template or module namespaces. -- Add sandbox and testcases links. -- "Editors can experiment in this template's sandbox and testcases pages." text = text .. (p.makeExperimentBlurb(args, env) or '') .. '<br />' if not args.content and not args[1] then -- "Please add categories to the /doc subpage." -- Don't show this message with inline docs or with an explicitly specified doc page, -- as then it is unclear where to add the categories. text = text .. (p.makeCategoriesBlurb(args, env) or '') end text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template" local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates. if printBlurb then text = text .. '<br />' .. printBlurb end end end local box = mw.html.create('div') -- 'documentation-metadata' box:attr('role', 'note') :addClass(message('end-box-class')) -- 'plainlinks' :addClass(message('end-box-plainlinks')) :wikitext(text) :done() return '\n' .. tostring(box) end function p.makeDocPageBlurb(args, env) --[=[ -- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)". -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'edit-link-display' --> 'edit' -- 'history-link-display' --> 'history' -- 'transcluded-from-blurb' --> -- 'The above [[Wikipedia:Template documentation|documentation]] -- is [[Help:Transclusion|transcluded]] from $1.' -- 'module-preload' --> 'Template:Documentation/preload-module-doc' -- 'create-link-display' --> 'create' -- 'create-module-doc-blurb' --> -- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' --]=] local docTitle = env.docTitle if not docTitle then return nil end local ret if docTitle.exists then -- /doc exists; link to it. local docLink = makeWikilink(docTitle.prefixedText) local editUrl = docTitle:fullUrl{action = 'edit'} local editDisplay = message('edit-link-display') local editLink = makeUrlLink(editUrl, editDisplay) local historyUrl = docTitle:fullUrl{action = 'history'} local historyDisplay = message('history-link-display') local historyLink = makeUrlLink(historyUrl, historyDisplay) ret = message('transcluded-from-blurb', {docLink}) .. ' ' .. makeToolbar(editLink, historyLink) .. '<br />' elseif env.subjectSpace == 828 then -- /doc does not exist; ask to create it. local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')} local createDisplay = message('create-link-display') local createLink = makeUrlLink(createUrl, createDisplay) ret = message('create-module-doc-blurb', {createLink}) .. '<br />' end return ret end function p.makeExperimentBlurb(args, env) --[[ -- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'sandbox-link-display' --> 'sandbox' -- 'sandbox-edit-link-display' --> 'edit' -- 'compare-link-display' --> 'diff' -- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'sandbox-create-link-display' --> 'create' -- 'mirror-edit-summary' --> 'Create sandbox version of $1' -- 'mirror-link-display' --> 'mirror' -- 'mirror-link-preload' --> 'Template:Documentation/mirror' -- 'sandbox-link-display' --> 'sandbox' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display'--> 'edit' -- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox' -- 'testcases-create-link-display' --> 'create' -- 'testcases-link-display' --> 'testcases' -- 'testcases-edit-link-display' --> 'edit' -- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases' -- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases' -- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.' -- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle local sandboxTitle = env.sandboxTitle local testcasesTitle = env.testcasesTitle local templatePage = templateTitle.prefixedText if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then return nil end -- Make links. local sandboxLinks, testcasesLinks if sandboxTitle.exists then local sandboxPage = sandboxTitle.prefixedText local sandboxDisplay = message('sandbox-link-display') local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay) local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'} local sandboxEditDisplay = message('sandbox-edit-link-display') local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay) local compareUrl = env.compareUrl local compareLink if compareUrl then local compareDisplay = message('compare-link-display') compareLink = makeUrlLink(compareUrl, compareDisplay) end sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink) else local sandboxPreload if subjectSpace == 828 then sandboxPreload = message('module-sandbox-preload') else sandboxPreload = message('template-sandbox-preload') end local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload} local sandboxCreateDisplay = message('sandbox-create-link-display') local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay) local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)}) local mirrorPreload = message('mirror-link-preload') local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary} if subjectSpace == 828 then mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary} end local mirrorDisplay = message('mirror-link-display') local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay) sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink) end if testcasesTitle.exists then local testcasesPage = testcasesTitle.prefixedText local testcasesDisplay = message('testcases-link-display') local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay) local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'} local testcasesEditDisplay = message('testcases-edit-link-display') local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay) -- for Modules, add testcases run link if exists if testcasesTitle.contentModel == "Scribunto" and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then local testcasesRunLinkDisplay = message('testcases-run-link-display') local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay) testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink) else testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink) end else local testcasesPreload if subjectSpace == 828 then testcasesPreload = message('module-testcases-preload') else testcasesPreload = message('template-testcases-preload') end local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload} local testcasesCreateDisplay = message('testcases-create-link-display') local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay) testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink) end local messageName if subjectSpace == 828 then messageName = 'experiment-blurb-module' else messageName = 'experiment-blurb-template' end return message(messageName, {sandboxLinks, testcasesLinks}) end function p.makeCategoriesBlurb(args, env) --[[ -- Generates the text "Please add categories to the /doc subpage." -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'doc-link-display' --> '/doc' -- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.' --]] local docTitle = env.docTitle if not docTitle then return nil end local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display')) return message('add-categories-blurb', {docPathLink}) end function p.makeSubpagesBlurb(args, env) --[[ -- Generates the "Subpages of this template" link. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'template-pagetype' --> 'template' -- 'module-pagetype' --> 'module' -- 'default-pagetype' --> 'page' -- 'subpages-link-display' --> 'Subpages of this $1' --]] local subjectSpace = env.subjectSpace local templateTitle = env.templateTitle if not subjectSpace or not templateTitle then return nil end local pagetype if subjectSpace == 10 then pagetype = message('template-pagetype') elseif subjectSpace == 828 then pagetype = message('module-pagetype') else pagetype = message('default-pagetype') end local subpagesLink = makeWikilink( 'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/', message('subpages-link-display', {pagetype}) ) return message('subpages-blurb', {subpagesLink}) end function p.makePrintBlurb(args, env) --[=[ -- Generates the blurb displayed when there is a print version of the template available. -- @args - a table of arguments passed by the user -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- -- Messages: -- 'print-link-display' --> '/Print' -- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]' -- .. ' of this template exists at $1.' -- .. ' If you make a change to this template, please update the print version as well.' -- 'display-print-category' --> true -- 'print-category' --> 'Templates with print versions' --]=] local printTitle = env.printTitle if not printTitle then return nil end local ret if printTitle.exists then local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display')) ret = message('print-blurb', {printLink}) local displayPrintCategory = message('display-print-category', nil, 'boolean') if displayPrintCategory then ret = ret .. makeCategoryLink(message('print-category')) end end return ret end ---------------------------------------------------------------------------- -- Tracking categories ---------------------------------------------------------------------------- function p.addTrackingCategories(env) --[[ -- Check if {{documentation}} is transcluded on a /doc or /testcases page. -- @env - environment table containing title objects, etc., generated with p.getEnvironment -- Messages: -- 'display-strange-usage-category' --> true -- 'doc-subpage' --> 'doc' -- 'testcases-subpage' --> 'testcases' -- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage' -- -- /testcases pages in the module namespace are not categorised, as they may have -- {{documentation}} transcluded automatically. --]] local title = env.title local subjectSpace = env.subjectSpace if not title or not subjectSpace then return nil end local subpage = title.subpageText local ret = '' if message('display-strange-usage-category', nil, 'boolean') and ( subpage == message('doc-subpage') or subjectSpace ~= 828 and subpage == message('testcases-subpage') ) then ret = ret .. makeCategoryLink(message('strange-usage-category')) end return ret end return p e83fdbf15868a3649a3fca55a29da23416566f02 Module:Documentation/config 828 186 280 279 2021-04-04T14:01:14Z Jdhirst 10 1 revision imported Scribunto text/plain ---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. ---------------------------------------------------------------------------------------------------- local cfg = {} -- Do not edit this line. ---------------------------------------------------------------------------------------------------- -- Protection template configuration ---------------------------------------------------------------------------------------------------- -- cfg['protection-reason-edit'] -- The protection reason for edit-protected templates to pass to -- [[Module:Protection banner]]. cfg['protection-reason-edit'] = 'template' --[[ ---------------------------------------------------------------------------------------------------- -- Sandbox notice configuration -- -- On sandbox pages the module can display a template notifying users that the current page is a -- sandbox, and the location of test cases pages, etc. The module decides whether the page is a -- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the -- messages that the notices contains. ---------------------------------------------------------------------------------------------------- --]] -- cfg['sandbox-notice-image'] -- The image displayed in the sandbox notice. cfg['sandbox-notice-image'] = '[[File:Sandbox.svg|50px|alt=|link=]]' --[[ -- cfg['sandbox-notice-pagetype-template'] -- cfg['sandbox-notice-pagetype-module'] -- cfg['sandbox-notice-pagetype-other'] -- The page type of the sandbox page. The message that is displayed depends on the current subject -- namespace. This message is used in either cfg['sandbox-notice-blurb'] or -- cfg['sandbox-notice-diff-blurb']. --]] cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page' cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page' cfg['sandbox-notice-pagetype-other'] = 'sandbox page' --[[ -- cfg['sandbox-notice-blurb'] -- cfg['sandbox-notice-diff-blurb'] -- cfg['sandbox-notice-diff-display'] -- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence -- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page -- type, which is either cfg['sandbox-notice-pagetype-template'], -- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what -- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between -- the sandbox and the main template. The display value of the diff link is set by -- cfg['sandbox-notice-compare-link-display']. --]] cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.' cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).' cfg['sandbox-notice-compare-link-display'] = 'diff' --[[ -- cfg['sandbox-notice-testcases-blurb'] -- cfg['sandbox-notice-testcases-link-display'] -- cfg['sandbox-notice-testcases-run-blurb'] -- cfg['sandbox-notice-testcases-run-link-display'] -- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit. $1 is a link to the test cases page. -- cfg['sandbox-notice-testcases-link-display'] is the display value for that link. -- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page -- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test -- cases page, and $2 is a link to the page to run it. -- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test -- cases. --]] cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.' cfg['sandbox-notice-testcases-link-display'] = 'test cases' cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).' cfg['sandbox-notice-testcases-run-link-display'] = 'run' -- cfg['sandbox-category'] -- A category to add to all template sandboxes. cfg['sandbox-category'] = 'Template sandboxes' ---------------------------------------------------------------------------------------------------- -- Start box configuration ---------------------------------------------------------------------------------------------------- -- cfg['documentation-icon-wikitext'] -- The wikitext for the icon shown at the top of the template. cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]' -- cfg['template-namespace-heading'] -- The heading shown in the template namespace. cfg['template-namespace-heading'] = 'Template documentation' -- cfg['module-namespace-heading'] -- The heading shown in the module namespace. cfg['module-namespace-heading'] = 'Module documentation' -- cfg['file-namespace-heading'] -- The heading shown in the file namespace. cfg['file-namespace-heading'] = 'Summary' -- cfg['other-namespaces-heading'] -- The heading shown in other namespaces. cfg['other-namespaces-heading'] = 'Documentation' -- cfg['view-link-display'] -- The text to display for "view" links. cfg['view-link-display'] = 'view' -- cfg['edit-link-display'] -- The text to display for "edit" links. cfg['edit-link-display'] = 'edit' -- cfg['history-link-display'] -- The text to display for "history" links. cfg['history-link-display'] = 'history' -- cfg['purge-link-display'] -- The text to display for "purge" links. cfg['purge-link-display'] = 'purge' -- cfg['create-link-display'] -- The text to display for "create" links. cfg['create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Link box (end box) configuration ---------------------------------------------------------------------------------------------------- -- cfg['transcluded-from-blurb'] -- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page. cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Wikipedia:Transclusion|transcluded]] from $1.' --[[ -- cfg['create-module-doc-blurb'] -- Notice displayed in the module namespace when the documentation subpage does not exist. -- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the -- display cfg['create-link-display']. --]] cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].' ---------------------------------------------------------------------------------------------------- -- Experiment blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['experiment-blurb-template'] -- cfg['experiment-blurb-module'] -- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages. -- It is only shown in the template and module namespaces. With the default English settings, it -- might look like this: -- -- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages. -- -- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links. -- -- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending -- on what namespace we are in. -- -- Parameters: -- -- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display']) -- -- If the sandbox doesn't exist, it is in the format: -- -- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display']) -- -- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload'] -- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display'] -- loads a default edit summary of cfg['mirror-edit-summary']. -- -- $2 is a link to the test cases page. If the test cases page exists, it is in the following format: -- -- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display']) -- -- If the test cases page doesn't exist, it is in the format: -- -- cfg['testcases-link-display'] (cfg['testcases-create-link-display']) -- -- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the -- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current -- namespace. --]] cfg['experiment-blurb-template'] = "Editors can experiment in this template's $1 and $2 pages." cfg['experiment-blurb-module'] = "Editors can experiment in this module's $1 and $2 pages." ---------------------------------------------------------------------------------------------------- -- Sandbox link configuration ---------------------------------------------------------------------------------------------------- -- cfg['sandbox-subpage'] -- The name of the template subpage typically used for sandboxes. cfg['sandbox-subpage'] = 'sandbox' -- cfg['template-sandbox-preload'] -- Preload file for template sandbox pages. cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox' -- cfg['module-sandbox-preload'] -- Preload file for Lua module sandbox pages. cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox' -- cfg['sandbox-link-display'] -- The text to display for "sandbox" links. cfg['sandbox-link-display'] = 'sandbox' -- cfg['sandbox-edit-link-display'] -- The text to display for sandbox "edit" links. cfg['sandbox-edit-link-display'] = 'edit' -- cfg['sandbox-create-link-display'] -- The text to display for sandbox "create" links. cfg['sandbox-create-link-display'] = 'create' -- cfg['compare-link-display'] -- The text to display for "compare" links. cfg['compare-link-display'] = 'diff' -- cfg['mirror-edit-summary'] -- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the -- template page. cfg['mirror-edit-summary'] = 'Create sandbox version of $1' -- cfg['mirror-link-display'] -- The text to display for "mirror" links. cfg['mirror-link-display'] = 'mirror' -- cfg['mirror-link-preload'] -- The page to preload when a user clicks the "mirror" link. cfg['mirror-link-preload'] = 'Template:Documentation/mirror' ---------------------------------------------------------------------------------------------------- -- Test cases link configuration ---------------------------------------------------------------------------------------------------- -- cfg['testcases-subpage'] -- The name of the template subpage typically used for test cases. cfg['testcases-subpage'] = 'testcases' -- cfg['template-testcases-preload'] -- Preload file for template test cases pages. cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases' -- cfg['module-testcases-preload'] -- Preload file for Lua module test cases pages. cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases' -- cfg['testcases-link-display'] -- The text to display for "testcases" links. cfg['testcases-link-display'] = 'testcases' -- cfg['testcases-edit-link-display'] -- The text to display for test cases "edit" links. cfg['testcases-edit-link-display'] = 'edit' -- cfg['testcases-run-link-display'] -- The text to display for test cases "run" links. cfg['testcases-run-link-display'] = 'run' -- cfg['testcases-create-link-display'] -- The text to display for test cases "create" links. cfg['testcases-create-link-display'] = 'create' ---------------------------------------------------------------------------------------------------- -- Add categories blurb configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['add-categories-blurb'] -- Text to direct users to add categories to the /doc subpage. Not used if the "content" or -- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a -- link to the /doc subpage with a display value of cfg['doc-link-display']. --]] cfg['add-categories-blurb'] = 'Please add categories to the $1 subpage.' -- cfg['doc-link-display'] -- The text to display when linking to the /doc subpage. cfg['doc-link-display'] = '/doc' ---------------------------------------------------------------------------------------------------- -- Subpages link configuration ---------------------------------------------------------------------------------------------------- --[[ -- cfg['subpages-blurb'] -- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a -- display value of cfg['subpages-link-display']. In the English version this blurb is simply -- the link followed by a period, and the link display provides the actual text. --]] cfg['subpages-blurb'] = '$1.' --[[ -- cfg['subpages-link-display'] -- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'], -- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in -- the template namespace, the module namespace, or another namespace. --]] cfg['subpages-link-display'] = 'Subpages of this $1' -- cfg['template-pagetype'] -- The pagetype to display for template pages. cfg['template-pagetype'] = 'template' -- cfg['module-pagetype'] -- The pagetype to display for Lua module pages. cfg['module-pagetype'] = 'module' -- cfg['default-pagetype'] -- The pagetype to display for pages other than templates or Lua modules. cfg['default-pagetype'] = 'page' ---------------------------------------------------------------------------------------------------- -- Doc link configuration ---------------------------------------------------------------------------------------------------- -- cfg['doc-subpage'] -- The name of the subpage typically used for documentation pages. cfg['doc-subpage'] = 'doc' -- cfg['file-docpage-preload'] -- Preload file for documentation page in the file namespace. cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace' -- cfg['docpage-preload'] -- Preload file for template documentation pages in all namespaces. cfg['docpage-preload'] = 'Template:Documentation/preload' -- cfg['module-preload'] -- Preload file for Lua module documentation pages. cfg['module-preload'] = 'Template:Documentation/preload-module-doc' ---------------------------------------------------------------------------------------------------- -- Print version configuration ---------------------------------------------------------------------------------------------------- -- cfg['print-subpage'] -- The name of the template subpage used for print versions. cfg['print-subpage'] = 'Print' -- cfg['print-link-display'] -- The text to display when linking to the /Print subpage. cfg['print-link-display'] = '/Print' -- cfg['print-blurb'] -- Text to display if a /Print subpage exists. $1 is a link to the subpage with -- a display value of cfg['print-link-display']. cfg['print-blurb'] = 'A [[Help:Books/for experts#Improving the book layout|print version]] of this template exists at $1.' .. ' If you make a change to this template, please update the print version as well.' -- cfg['display-print-category'] -- Set to true to enable output of cfg['print-category'] if a /Print subpage exists. -- This should be a boolean value (either true or false). cfg['display-print-category'] = true -- cfg['print-category'] -- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists. cfg['print-category'] = 'Templates with print versions' ---------------------------------------------------------------------------------------------------- -- HTML and CSS configuration ---------------------------------------------------------------------------------------------------- -- cfg['templatestyles'] -- The name of the TemplateStyles page where CSS is kept. -- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed. cfg['templatestyles'] = 'Module:Documentation/styles.css' -- cfg['container'] -- Class which can be used to set flex or grid CSS on the -- two child divs documentation and documentation-metadata cfg['container'] = 'documentation-container' -- cfg['main-div-classes'] -- Classes added to the main HTML "div" tag. cfg['main-div-classes'] = 'documentation' -- cfg['main-div-heading-class'] -- Class for the main heading for templates and modules and assoc. talk spaces cfg['main-div-heading-class'] = 'documentation-heading' -- cfg['start-box-class'] -- Class for the start box cfg['start-box-class'] = 'documentation-startbox' -- cfg['start-box-link-classes'] -- Classes used for the [view][edit][history] or [create] links in the start box. -- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]] cfg['start-box-link-classes'] = 'mw-editsection-like plainlinks' -- cfg['end-box-class'] -- Class for the end box. cfg['end-box-class'] = 'documentation-metadata' -- cfg['end-box-plainlinks'] -- Plainlinks cfg['end-box-plainlinks'] = 'plainlinks' -- cfg['toolbar-class'] -- Class added for toolbar links. cfg['toolbar-class'] = 'documentation-toolbar' -- cfg['clear'] -- Just used to clear things. cfg['clear'] = 'documentation-clear' ---------------------------------------------------------------------------------------------------- -- Tracking category configuration ---------------------------------------------------------------------------------------------------- -- cfg['display-strange-usage-category'] -- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage -- or a /testcases subpage. This should be a boolean value (either true or false). cfg['display-strange-usage-category'] = true -- cfg['strange-usage-category'] -- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a -- /doc subpage or a /testcases subpage. cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage' --[[ ---------------------------------------------------------------------------------------------------- -- End configuration -- -- Don't edit anything below this line. ---------------------------------------------------------------------------------------------------- --]] return cfg 936dcd942da0ad844cd212849cde5e2dc1e45c3d Template:Progress bar 10 187 282 281 2021-04-04T14:01:59Z Jdhirst 10 1 revision imported wikitext text/x-wiki <div style=" width:{{{width|75%}}}; {{#ifeq: {{{center|yes}}} | yes | margin:auto; text-align:center;}}"> {{#ifeq: {{{header|yes}}} | yes | <p> {{Big|1= '''{{#expr: ( {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}}) * 100 round 1}}%''' }} {{{text|completed <small>(estimate)</small>}}} </p> }} <p style="border:{{{border|1px solid #c8ccd1}}}; padding:{{{padding|1px}}}; overflow:hidden;"> <span style=" width: {{#expr: {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height: {{{height|2}}}px; background:{{{color1|#00af32}}}; float:left; ">&nbsp;</span> <span style=" width:{{#expr: 100 - {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height:{{{height|2}}}px; background:{{{color2|#eaecf0}}}; float:left; ">&nbsp;</span> </p> </div><noinclude>{{Documentation}}</noinclude> e304726348924b4418b697a00b0a48e931998e4f Template:Big 10 188 284 283 2021-04-04T14:01:59Z Jdhirst 10 1 revision imported wikitext text/x-wiki <span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude> 921a29fc5d6c9a23b246400fe247ba4f2e0f2aaf Template:Documentation 10 189 286 285 2021-04-04T14:01:59Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}<noinclude> <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> ce7fd93f18c46b4fa871bf679afd05cbda72d8c4 Template:Documentation subpage 10 190 288 287 2021-04-04T14:01:59Z Jdhirst 10 1 revision imported wikitext text/x-wiki <includeonly><!-- -->{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}} | <!--(this template has been transcluded on a /doc or /{{{override}}} page)--> </includeonly><!-- -->{{#ifeq:{{{doc-notice|show}}} |show | {{Mbox | type = notice | style = margin-bottom:1.0em; | image = [[File:Edit-copy green.svg|40px|alt=|link=]] | text = '''This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.<br />It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. }} }}<!-- -->{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}<!-- -->{{#if:{{{inhibit|}}} |<!--(don't categorize)--> | <includeonly><!-- -->{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}} | [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]] | [[Category:Documentation subpages without corresponding pages]] }}<!-- --></includeonly> }}<!-- (completing initial #ifeq: at start of template:) --><includeonly> | <!--(this template has not been transcluded on a /doc or /{{{override}}} page)--> }}<!-- --></includeonly><noinclude>{{Documentation}}</noinclude> a1dda2f5e5ddf9097546af5acd7a7bad14fdac9d Template:Esoteric 10 191 290 289 2021-04-04T14:01:59Z Jdhirst 10 1 revision imported wikitext text/x-wiki #REDIRECT [[Template:Intricate template]] [[Category:Fully protected redirects]] cb5f7f64914d207a4abd8528d9eb1c81b471b07e Template:Icon 10 192 292 291 2021-04-04T14:01:59Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#invoke:Icon|main}}<noinclude> {{documentation}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude> bd5b855953c5eec9d9c48400aa39315cb4218558 Template:Intricate template 10 193 294 293 2021-04-04T14:01:59Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#switch:{{{form|}}} |editnotice = {{editnotice |id = {{{id|}}} |image = [[Image:Ambox warning yellow.svg|40x40px|alt=|link=]] |text = {{Intricate template/text}} |expiry= {{{expiry|}}} }} |#default = {{ombox |type = style |image = [[Image:Ambox warning yellow.svg|40x40px|alt=|link=]] |text = {{Intricate template/text}} }} }}<includeonly>{{#ifeq: {{PAGENAME}} | {{BASEPAGENAME}} | [[Category:Intricate templates]] }}</includeonly><noinclude> {{Documentation}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> 9146fbe710b52118d2dac95e9f9900017c229d94 Template:Intricate template/text 10 194 296 295 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported wikitext text/x-wiki '''This {{SUBJECTSPACE formatted}} employs intricate features of template syntax.''' <div style="padding-bottom:2px;">You are encouraged to familiarise yourself with its setup and [[m:Help:Parser function|parser functions]] before editing the template. If your edit causes unexpected problems, please [[Help:Reverting#Undo|undo]] it quickly, as this template may appear on a large number of pages.<br/> You can conduct experiments, and should test all major changes, in either <span class="nowraplinks">[[{{#ifexist:{{FULLPAGENAME}}/Sandbox|/Sandbox|{{#ifexist:{{FULLPAGENAME}}/test sandbox|/test sandbox|{{#ifexist:{{FULLPAGENAME}}/Test sandbox|/Test sandbox|{{#ifexist:{{FULLPAGENAME}}/test|/test|{{#ifexist:{{FULLPAGENAME}}/Test|/Test|/sandbox}}}}}}}}}}|this template's sandbox]]</span>, the [[Template:Template sandbox|general template sandbox]], or your user space before changing anything here.</div> b296ccca7329fd6429a574b2b1d3e2d68722fd44 Template:Navbox 10 195 298 297 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported wikitext text/x-wiki <includeonly>{{#invoke:Navbox|navbox}}</includeonly><noinclude> {{Documentation}} </noinclude> fe9b964401f895918ee4fe078678f1722a3c41ec Template:Progress bar/doc 10 196 300 299 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{Documentation subpage}} <!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --> {{Esoteric}} == Usage == :<code>'''<nowiki>{{</nowiki>Progress bar|'''''value'''''<nowiki>}}</nowiki>'''</code> This template draws a progress bar. By default, the <code>value</code> to supply as the parameter is the percent, from 0 to 100 (e.g. 1 would mean 1%, .1 would be 0.1%). The text label of the progress bar will always be rounded to the nearest tenth of a percent (rounding up if the hundreds digit is 5; e.g. 50.15 would round to 50.2%). If a value isn't specified or is invalid, the bar displays 0%. Values greater than 100% will display incorrectly, although the text label will be correct. === Optional parameters === *<code>height</code> = height of the progress bar in pixels; defaults to 2 *<code>width</code> = width of the progress bar; defaults to 75% *<code>text</code> = message to display after %; defaults to: completed <small>(estimate)</small> *<code>total</code> = amount to use as the denominator (instead of 100), allows the template to compute the percentage on the fly *<code>header</code> = no (or any value other than "yes", which is the default) suppresses the display of the percentage on the top line === Examples === ==== Default configuration ==== <code><nowiki>{{Progress bar|5}}</nowiki></code> : {{Progress bar|5}} ==== With custom header text ==== <code><nowiki>{{Progress bar|5|text=done}}</nowiki></code> : {{Progress bar|5|text=done}} ==== Without header text ==== <code><nowiki>{{Progress bar|80|header=no|text=does not display here}}</nowiki></code> : {{Progress bar|80|header=no|text=does not display here}} ==== Custom height and width ==== <code><nowiki>{{Progress bar|80|height=4|width=50%}}</nowiki></code> : {{Progress bar|80|height=4|width=50%}} ==== Custom total ==== <code><nowiki>{{Progress bar|5|total=5}}</nowiki></code> : {{Progress bar|5|total=5}} {{Progress templates}} <includeonly>{{Sandbox other|| <!-- CATEGORIES AND INTERWIKIS HERE, THANKS --> [[Category:Wikipedia utility templates]] [[Category:Wikipedia progress templates]] }}</includeonly> bd5248113245a9d0248a1ca141dd0b3d077d361c Template:Progress templates 10 197 302 301 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{Navbox | name = Progress templates | title = Progress templates | bodyclass = hlist | state = {{{state|{{{1|}}}}}} | group1 = General progress templates | list1 = *{{tl|Progress bar}} *{{tl|Progression}} *{{tl|Composition bar}} *{{tl|Composition histogram}} *{{tl|Percentage bar}} *{{tl|Percent-done}} *{{tl|Progress meter}} *{{tl|Percentile}} *{{tl|Stacked bar}} | group2 = Specific-use templates | list2 = *{{tl|Backlog progress bar}} *{{tl|Progress box}} *{{tl|Stage short}} *{{tl|Progression rainbow}} *{{tl|WikiProject assessment progression}} |belowstyle = font-weight:bold; |below = * {{icon|category}} [[:Category:Wikipedia progress templates|Category]] * {{icon|list}} [[Wikipedia:List of progress boxes|List]] <small>(partial)</small> }}<noinclude> {{Documentation}} <!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES TO THE /doc SUBPAGE, THANKS --> </noinclude> 99b8b12647a2d50a7c47145289408e5d14c938c9 Template:SUBJECTSPACE formatted 10 198 304 303 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{#switch: {{SUBJECTSPACE}} | {{ns:0}} = article | {{ns:4}} = Wikipedia page | {{ns:2}} | {{ns:12}} = {{lc:{{SUBJECTSPACE}}}} page | #default = {{lc:{{SUBJECTSPACE}}}} }}<noinclude> {{Documentation}} </noinclude> 4f84e8059ec30e2a96684cbcd53b80e19ff9f1e5 Template:Tfm/dated 10 199 306 305 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported wikitext text/x-wiki {{ {{{|safesubst:}}}#invoke:Unsubst||type= |page= |link= |help= |$B={{#ifeq:{{{bigbox|<noinclude>yes</noinclude>}}}|yes|{{Ombox |type = move |image = none |class = nomobile mbox-tfd |small = {{{small|no}}} |text = This {{#ifeq:{{lc:{{{type}}}}}|module|[[Help:Module|module]]|[[Help:Template|template]]}} is '''being considered for merging with [[{{#ifeq:{{lc:{{{type}}}}}|module|Module|Template}}:{{{otherpage}}}]].''' Please discuss this matter at [[{{{link}}}|'''this {{#ifeq:{{lc:{{{type}}}}}|module|module|template}}'s entry''']] at templates for discussion to help reach a consensus. {{#ifeq:{{{help}}}|off||---- ''<small class="plainlinks" style="line-height:1.3em;">[[Wikipedia:Maintenance|Maintenance]] use only:<br />1. [{{fullurl:{{{link}}}|action=edit&editintro=Wikipedia:Templates_for_discussion/editnotice&section=1}} Edit the TfD log] to create the discussion entry.<br />2. Please consider notifying the [{{fullurl:{{FULLPAGENAME}}|action=history}} author(s)] by placing <span class="nowrap">{{tlx|Tfmnotice|{{{page}}}|{{{otherpage}}}|subst=yes}} <nowiki>~~~~</nowiki></span> on their talk page(s).</small>'' }}}}{{category handler | all = [[Category:Templates for merging]] | nocat = {{{nocat|{{#ifeq:{{Template:FULLBASEPAGENAME|{{FULLBASEPAGENAME}}}}|Template:Tfm|true}}}}} | category2 = {{{category|¬}}} }}|{{#switch:{{lc:{{{type}}}}} |tiny = <span style="padding: 0; font-size: xx-small; font-weight: bold; color: #000000; background-color: #f9f9f9;" class="tfd">[[{{{link}}}|‹See TfM›]]</span> |inline = <span style="padding: 0; font-size: xx-small; color: #000; border: 1px solid #aaa; background-color: #f9f9f9;" class="tfd">‹The [[Help:Template|template]] ''[[Template:{{{page}}}|{{{page}}}]]'' is being [[{{{link}}}|considered for merging]].›</span>&nbsp; |infobox|box|sidebar = <div class="boilerplate metadata plainlinks tfd" id="tfd" style="background-color: transparent; padding: 0 0.2em; color: #000; text-align: center; position: relative; float: right; clear: right; width: {{#if:{{{width|}}}|{{{width}}}|20em}}"><span style="font-size: xx-small;">‹&nbsp;The [[Help:Template|template]] ''[[Template:{{{page}}}|{{{page}}}]]'' is being [[{{{link}}}|considered for merging]].&nbsp;›</span></div> |disabled = <!-- No output --> |#default = <div class="boilerplate metadata plainlinks tfd" id="tfd" style="background-color: transparent; padding: 0; font-size:xx-small; color:#000000; text-align: center; border-bottom:1px solid #AAAAAA; overflow:hidden;">‹&nbsp;The [[Help:Template|template]] below (''[[Template:{{{page}}}|{{{page}}}]]'') is being considered for merging. See [[{{{link}}}|templates for discussion]] to help reach a consensus.&nbsp;›</div> }}}}}}<noinclude> {{Documentation}} </noinclude> 0eaea4bece59b32fb8f23df8026eb67e263d9555 Module:Color contrast 828 200 308 307 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported Scribunto text/plain -- -- This module implements -- {{Color contrast ratio}} -- {{Greater color contrast ratio}} -- {{ColorToLum}} -- {{RGBColorToLum}} -- local p = {} local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' ) local function sRGB (v) if (v <= 0.03928) then v = v / 12.92 else v = math.pow((v+0.055)/1.055, 2.4) end return v end local function rgbdec2lum(R, G, B) if ( 0 <= R and R < 256 and 0 <= G and G < 256 and 0 <= B and B < 256 ) then return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255) else return '' end end local function hsl2lum(h, s, l) if ( 0 <= h and h < 360 and 0 <= s and s <= 1 and 0 <= l and l <= 1 ) then local c = (1 - math.abs(2*l - 1))*s local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) ) local m = l - c/2 local r, g, b = m, m, m if( 0 <= h and h < 60 ) then r = r + c g = g + x elseif( 60 <= h and h < 120 ) then r = r + x g = g + c elseif( 120 <= h and h < 180 ) then g = g + c b = b + x elseif( 180 <= h and h < 240 ) then g = g + x b = b + c elseif( 240 <= h and h < 300 ) then r = r + x b = b + c elseif( 300 <= h and h < 360 ) then r = r + c b = b + x end return rgbdec2lum(255*r, 255*g, 255*b) else return '' end end local function color2lum(c) if (c == nil) then return '' end -- html '#' entity c = c:gsub("&#35;", "#") -- whitespace c = c:match( '^%s*(.-)[%s;]*$' ) -- unstrip nowiki strip markers c = mw.text.unstripNoWiki(c) -- lowercase c = c:lower() -- first try to look it up local L = HTMLcolor[c] if (L ~= nil) then return L end -- convert from hsl if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100) end -- convert from rgb if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$') return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B)) end -- convert from rgb percent if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$') return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100) end -- remove leading # (if there is one) and whitespace c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$') -- split into rgb local cs = mw.text.split(c or '', '') if( #cs == 6 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2]) local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4]) local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6]) return rgbdec2lum(R, G, B) elseif ( #cs == 3 ) then local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1]) local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2]) local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3]) return rgbdec2lum(R, G, B) end -- failure, return blank return '' end -- This exports the function for use in other modules. -- The colour is passed as a string. function p._lum(color) return color2lum(color) end function p._greatercontrast(args) local bias = tonumber(args['bias'] or '0') or 0 local css = (args['css'] and args['css'] ~= '') and true or false local v1 = color2lum(args[1] or '') local c2 = args[2] or '#FFFFFF' local v2 = color2lum(c2) local c3 = args[3] or '#000000' local v3 = color2lum(c3) local ratio1 = -1; local ratio2 = -1; if (type(v1) == 'number' and type(v2) == 'number') then ratio1 = (v2 + 0.05)/(v1 + 0.05) ratio1 = (ratio1 < 1) and 1/ratio1 or ratio1 end if (type(v1) == 'number' and type(v3) == 'number') then ratio2 = (v3 + 0.05)/(v1 + 0.05) ratio2 = (ratio2 < 1) and 1/ratio2 or ratio2 end if css then local c1 = args[1] or '' if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c1 = '#' .. c1 end if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c2 = '#' .. c2 end if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then c3 = '#' .. c3 end return 'background-color:' .. c1 .. '; color:' .. ((ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '') .. ';' end return (ratio1 > 0) and (ratio2 > 0) and ((ratio1 + bias > ratio2) and c2 or c3) or '' end function p._ratio(args) local v1 = color2lum(args[1]) local v2 = color2lum(args[2]) if (type(v1) == 'number' and type(v2) == 'number') then -- v1 should be the brighter of the two. if v2 > v1 then v1, v2 = v2, v1 end return (v1 + 0.05)/(v2 + 0.05) else return args['error'] or '?' end end function p._styleratio(args) local style = (args[1] or ''):lower() local bg, fg = 'white', 'black' local lum_bg, lum_fg = 1, 0 if args[2] then local lum = color2lum(args[2]) if lum ~= '' then bg, lum_bg = args[2], lum end end if args[3] then local lum = color2lum(args[3]) if lum ~= '' then fg, lum_fg = args[3], lum end end local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&#[Xx]23;', '#'), '&#35;', '#'), ';') for k = 1,#slist do local s = slist[k] local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' ) k = k or '' v = v or '' if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_bg = v, lum end elseif (k:match('^[%s]*(color)[%s]*$')) then local lum = color2lum(v) if( lum ~= '' ) then bg, lum_fg = v, lum end end end if lum_bg > lum_fg then return (lum_bg + 0.05)/(lum_fg + 0.05) else return (lum_fg + 0.05)/(lum_bg + 0.05) end end --[[ Use {{#invoke:Color contrast|somecolor}} directly or {{#invoke:Color contrast}} from a wrapper template. Parameters: -- |1= — required; A color to check. --]] function p.lum(frame) local color = frame.args[1] or frame:getParent().args[1] return p._lum(color) end function p.ratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._ratio(args) end function p.styleratio(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._styleratio(args) end function p.greatercontrast(frame) local args = frame.args[1] and frame.args or frame:getParent().args return p._greatercontrast(args) end return p 1e399769117591366a63f62996c9a407077cc711 Module:Color contrast/colors 828 201 310 309 2021-04-04T14:02:00Z Jdhirst 10 1 revision imported Scribunto text/plain return { aliceblue = 0.92880068253475, antiquewhite = 0.84646951707754, aqua = 0.7874, aquamarine = 0.8078549208338, azure = 0.97265264954166, beige = 0.8988459998705, bisque = 0.80732327372979, black = 0, blanchedalmond = 0.85084439608156, blue = 0.0722, blueviolet = 0.12622014321946, brown = 0.098224287876511, burlywood = 0.51559844533893, cadetblue = 0.29424681085422, chartreuse = 0.76032025902623, chocolate = 0.23898526114557, coral = 0.37017930872924, cornflowerblue = 0.30318641994179, cornsilk = 0.93562110372965, crimson = 0.16042199953026, cyan = 0.7874, darkblue = 0.018640801980939, darkcyan = 0.20329317839046, darkgoldenrod = 0.27264703559993, darkgray = 0.39675523072563, darkgreen = 0.091143429047575, darkgrey = 0.39675523072563, darkkhaki = 0.45747326349994, darkmagenta = 0.07353047651207, darkolivegreen = 0.12651920884889, darkorange = 0.40016167026524, darkorchid = 0.13413142174857, darkred = 0.054889674531132, darksalmon = 0.40541471563381, darkseagreen = 0.43789249325969, darkslateblue = 0.065792846227988, darkslategray = 0.067608151928044, darkslategrey = 0.067608151928044, darkturquoise = 0.4874606277449, darkviolet = 0.10999048339343, deeppink = 0.23866895828276, deepskyblue = 0.44481603395575, dimgray = 0.14126329114027, dimgrey = 0.14126329114027, dodgerblue = 0.27442536991456, firebrick = 0.10724525535015, floralwhite = 0.95922484825004, forestgreen = 0.18920812076002, fuchsia = 0.2848, gainsboro = 0.71569350050648, ghostwhite = 0.94311261886323, gold = 0.69860877428159, goldenrod = 0.41919977809569, gray = 0.2158605001139, green = 0.15438342968146, greenyellow = 0.80609472611453, grey = 0.2158605001139, honeydew = 0.96336535554782, hotpink = 0.34658438169715, indianred = 0.21406134963884, indigo = 0.03107561486337, ivory = 0.99071270600615, khaki = 0.77012343394121, lavender = 0.80318750514521, lavenderblush = 0.90172748631046, lawngreen = 0.73905893124963, lemonchiffon = 0.94038992245622, lightblue = 0.63709141280807, lightcoral = 0.35522120733135, lightcyan = 0.94587293494829, lightgoldenrodyellow = 0.93348351018297, lightgray = 0.65140563741982, lightgreen = 0.69091979956865, lightgrey = 0.65140563741982, lightpink = 0.58566152734898, lightsalmon = 0.4780675225206, lightseagreen = 0.35050145117042, lightskyblue = 0.56195637618331, lightslategray = 0.23830165007287, lightslategrey = 0.23830165007287, lightsteelblue = 0.53983888284666, lightyellow = 0.98161818392882, lime = 0.7152, limegreen = 0.44571042246098, linen = 0.88357340984379, magenta = 0.2848, maroon = 0.045891942324215, mediumaquamarine = 0.49389703310801, mediumblue = 0.044077780212328, mediumorchid = 0.21639251153773, mediumpurple = 0.22905858091648, mediumseagreen = 0.34393112338131, mediumslateblue = 0.20284629471622, mediumspringgreen = 0.70704308194184, mediumturquoise = 0.5133827926448, mediumvioletred = 0.14371899849357, midnightblue = 0.02071786635086, mintcream = 0.97834604947588, mistyrose = 0.82183047859185, moccasin = 0.80083000991567, navajowhite = 0.76519682342785, navy = 0.015585128108224, oldlace = 0.91900633405549, olive = 0.20027537200568, olivedrab = 0.22593150951929, orange = 0.4817026703631, orangered = 0.25516243753416, orchid = 0.31348806761439, palegoldenrod = 0.78792647887614, palegreen = 0.77936759006353, paleturquoise = 0.76436077921714, palevioletred = 0.28754994117889, papayawhip = 0.87797100199835, peachpuff = 0.74905589878251, peru = 0.30113074877936, pink = 0.63271070702466, plum = 0.45734221587969, powderblue = 0.68254586500605, purple = 0.061477070432439, rebeccapurple = 0.07492341159447, red = 0.2126, rosybrown = 0.32319457649407, royalblue = 0.16663210743188, saddlebrown = 0.097922285020521, salmon = 0.36977241527596, sandybrown = 0.46628543696283, seagreen = 0.19734199706275, seashell = 0.92737862206922, sienna = 0.13697631337098, silver = 0.52711512570581, skyblue = 0.55291668518184, slateblue = 0.14784278062136, slategray = 0.20896704076536, slategrey = 0.20896704076536, snow = 0.96533341834849, springgreen = 0.73052306068529, steelblue = 0.20562642207625, tan = 0.48237604163921, teal = 0.16996855778968, thistle = 0.56818401093733, tomato = 0.30638612719415, turquoise = 0.5895536427578, violet = 0.40315452986676, wheat = 0.74909702820482, white = 1, whitesmoke = 0.91309865179342, yellow = 0.9278, yellowgreen = 0.50762957208707, } 6ae47fdb24de4eed5ec26d203faf5341a388987b Big 0 202 312 311 2021-04-04T14:06:38Z Jdhirst 10 1 revision imported wikitext text/x-wiki <span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude> 921a29fc5d6c9a23b246400fe247ba4f2e0f2aaf Template:Big 10 188 316 284 2021-04-04T14:07:24Z Jdhirst 10 1 revision imported wikitext text/x-wiki <span style="font-size: 120%;">{{{1}}}</span><noinclude> {{Documentation}} <!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --> </noinclude> 921a29fc5d6c9a23b246400fe247ba4f2e0f2aaf Template:Progress bar 10 187 318 282 2021-04-04T14:07:24Z Jdhirst 10 1 revision imported wikitext text/x-wiki <div style=" width:{{{width|75%}}}; {{#ifeq: {{{center|yes}}} | yes | margin:auto; text-align:center;}}"> {{#ifeq: {{{header|yes}}} | yes | <p> {{Big|1= '''{{#expr: ( {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}}) * 100 round 1}}%''' }} {{{text|completed <small>(estimate)</small>}}} </p> }} <p style="border:{{{border|1px solid #c8ccd1}}}; padding:{{{padding|1px}}}; overflow:hidden;"> <span style=" width: {{#expr: {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height: {{{height|2}}}px; background:{{{color1|#00af32}}}; float:left; ">&nbsp;</span> <span style=" width:{{#expr: 100 - {{{1|<noinclude>2</noinclude>0}}} / {{{total|100}}} * 100}}%; height:{{{height|2}}}px; background:{{{color2|#eaecf0}}}; float:left; ">&nbsp;</span> </p> </div><noinclude>{{Documentation}}</noinclude> e304726348924b4418b697a00b0a48e931998e4f Crucible Project Status 0 7 319 195 2021-04-04T14:19:56Z Jdhirst 10 wikitext text/x-wiki = Crucible Project Status = __TOC__ <tr><td class="content"> <h1><center><span class="mw-headline" id="Crucible">EVEmu Crucible Server</span></center></h1> <table style="background: transparent; width:100%"><tr> <td style="text-align: center;"><h2>Estimated Progress of Listed Systems</h2></td></tr></table> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:59%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table></td></tr></table> <table style="background: transparent; width:100%"><tr><td style="text-align: center;"> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:59%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>59.5%</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"><BR><BR> This data is reflection of current EVEmu code status.<BR>If a system is NOT listed here, then it isnt implemented at all.<BR><BR> <BR> Items listed as "<font color=red>NOT IMPLEMENTED</font>" are not coded at all. <BR> The server will not respond to requests, you will get an error, and the server may even crash. (this is ok, and expected)<BR><BR> Items listed as "<font color=magenta>Skeleton Code Only</font>" has a basic outline coded, but limited or no processing and/or returns. <BR> The server may not respond or only partially respond to these requests. You may get an error from these requests, and the server may crash.<BR><BR> Items listed as "<font color=yellow>Preliminary Implementation</font>" have a rough draft of their specific code, just a step or two above skeleton code, and may not function properly or completely. <BR> There will be some response, like opening windows, but will not generate an error and will very seldom crash the server.</font><BR><BR><BR> <font color="orange">Last Update:</font>&nbsp;&nbsp;&nbsp;<font color=green>14 February 2021</font><BR> <font color="orange">Page Status:</font>&nbsp;&nbsp;&nbsp;<font color=red>Outdated</font> - <font color="yellow">Being Updated</font><BR> <font color="orange">Incomplete Data:</font>&nbsp;&nbsp;&nbsp;All data currently under review. Found discrepancies in pre-rewrite tests (before mid-2016)<BR><BR></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="System_Foundation_Fundamentals"> System Foundation Fundamentals (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>62.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"><tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td><td style="width: 26%;">Comments</td></tr> <tr><td> - Stable, Efficient Server Code</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress - eliminating duplicated code and headers, tracking/fixing segfaults, updating code to C++/0x11<BR>14Feb21</td></tr> <tr><td> - Memory Management</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress<BR>While greatly improved over official branch,<BR><font color="red">still horrible</font><BR>14Feb21</td></tr> <tr><td> - Efficient, Accurate Packet Deciphering</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress - Most packets understood and correctly processed<BR>27July15</td></tr> <tr><td> - Mutexes</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>All MT systems correctly lock/unlock data - no data races<BR>14Feb21</td></tr> <tr><td> - Eliminate all compiler Warnings from the EVEmu solution</td><td class="working">50% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="pink">Not Complete</font><BR><font color=olive>Enabling all compiler warnings gives 10.8Mb log file of errors</font><BR>10Dec18</td></tr> <tr><td> - GM commands<BR>Most commands need complete rewrite</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Working</font><BR><font color=magenta>Needs Work</font><BR>27Jun17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Information"> Item Information Windows (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:90%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:90%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>90.0</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Get Item Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Ship Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Skill Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Certification Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Character Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get NPC Corporation Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Player Corporation Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Account_and_Character_Management"> Account and Character Management (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:96%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table></td></tr></table></div></div> <div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><table style="background: transparent; width:96%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>96.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Account Login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>15Feb14</td></tr> <tr><td> - Account Banning/Kicking</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Unknown<BR>2Dec18</td></tr> <tr><td> - Character Creation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>15Feb14</td></tr> <tr><td> - Character Deletion</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar19</td></tr> <tr><td> - Character entrance to last location</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Character Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>17Nov17</td></tr> <tr><td> - Open Skills Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Certificate Window and Planner</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Decorations Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30May19</td></tr> <tr><td> - Open Attributes Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Neural Remap</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Augmentations Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Implants Not Implemented</font><BR>1Feb14</td></tr> <tr><td> - Open Jump Clones Window</td><td class="broken">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Jump Clones Not Implemented</font><BR>1Feb14</td></tr> <tr><td> - Open Bio Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Employment History Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>4Apr14</td></tr> <tr><td> - Open Standings Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>Standings partially Implemented (see below)<BR>17Nov18</td></tr> <tr><td> - Open Security Status Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>SecStatus partially Implemented - changes not saved to db yet.<BR>1Feb14</td></tr> <tr><td> - Open Kill Rights Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Kill Rights Not Implemented</font><BR>1Feb14</td></tr><tr> <td> - Open Combat Log Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>Combat Log partially Implemented<BR>17July17</td></tr> <td> - KillMail</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>17July17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Skills_-_Certificates"> Skills &amp; Certificates (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:98%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>98.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Browse Skills to train</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Add skills to queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Filter skills that don't fit in queue time remaining</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Apply changes to skill queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Pause skill queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Re-Start skill queue after pause</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Skill training time</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Right-click add skill to queue from Skills Window in Character Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Certificate Awarding</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Standings"> Standings (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:19%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:19%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>18.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - <font color=lime>Faction Standings (NPC Alliances)</font> &nbsp;&nbsp;--&nbsp;&nbsp; <font color=yellow>These standings cannot be modified.</font></td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - <font color=lime>CONCORD Standings (Security Rating)</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Agent to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Agent to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Agents respond to Character standings (personal, corp, ally)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - NPC Corp to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions and faction kills</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - NPC Corp to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions and faction kills</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Character to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by PnP window</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Character to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by PnP window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Player Corp to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Player Corp to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Alliance to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Alliance to Alliance&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="NPC_Station_Services"> NPC Station Services (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>82.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Right-click Menu in Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - In-station Guests List</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can repackage ships/items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can assemble ships and items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21Feb14</td></tr> <tr><td> - Can eject from ship to pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Nov15</td></tr> <tr><td> - Can make active ships</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Nov15</td></tr> <tr><td> - Agent Services</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>13Nov18</td></tr> <tr><td> - Trade Services</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=red>corp trade not coded.</font><BR>27Jun17</td></tr> <tr><td> - Repair Services</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Insurance Services</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>22Aug15</td></tr> <tr><td> - Bounty Services</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>22Aug15</td></tr> <tr><td> - Market Services</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR> <font color=red>Corp Buy/Sell Incomplete</font><BR>10Dec18</td></tr> <tr><td> - Medical Services</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=yellow>Few Odd Bugs</font><BR>30Dec14</td></tr> <tr><td> - LP Services</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Clone upgrade</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Clone transfer</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Jump clone installation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Items window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21Feb14</td></tr> <tr><td> - Can merge/stack/split items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can trash items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can open/close containers</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Can move items into/out of containers</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Can inject skills from items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Agents"> Agents (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>63.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Agents Tab</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can initiate conversation with agent</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Agents offer Missions</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can View Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Accept Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Complete Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Search Agents</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>19Nov18</td></tr> <tr><td> - Can Search for character by agent</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Missions"> Missions (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:15%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:15%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>13.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Missions Give Rewards (isk/standings)</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Missions Give LP</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basic Mission Types</h3></font></td></tr> <tr><td> - <font color=lime>Courier Missions</font><BR> Simple delivery where you are requested to move items from one location to another. No standing loss from opposing faction.</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Mining Missions</font><BR> 2 Types. Mine specific ore at specific location, or supply agent with mined ore or reprocessed minerals.</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Security Missions</font><BR> 2 Types. Destroy ships at given location in space. Destroy ships in deadspace pockets using acceleration gates.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Trade Missions</font><BR> Provide Agent with requested items at a specific station. Can be either crafted or bought. <BR> No standing loss from opposing faction.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Mission Types</h3></font></td></tr> <tr><td> - <font color=lime>Tutorial Missions</font><BR> Missions for beginning pilots to learn game basics. On Hold...May not be implemented.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Storyline Missions</font><BR> Special Missions to gain faction standings with agent giving mission. Given after 10-15 basic mission completions. Repeatable.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Research Missions</font><BR> Special Missions given from Research Agents for characters doing research with that agent.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Data Missions</font><BR> Turn in pirate tags for standings. Higher Agents may give basic missions for higher rewards.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Cosmos Missions</font><BR> Small Mission Chains, given from CONCORD agents. Can only be completed once. <BR>Expiration, Failure or Denial forever blocks giving agent.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Anomic Missions</font><BR> Given by L4 Security Agents. Can be declined without penalty. Ship Restrictions.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Arc Missions</font><BR> Large Mission Chains broken into chapters. 7 total Epic Arcs. Can be repeated every 3 months.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Unsorted Missions</font><BR> Custom missions separate from other categories.</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Chats_-_Local_Corp_Custom_Private"> LSC - Large Scale Chat System (<font color=pink>Rewrite on hold</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:68%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:68%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>68.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Open/View Static Server Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Join Static Server Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - rClick Chat Menu</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Characters show up in Local</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>24Nov17</td></tr> <tr><td> - Chat in Local</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Characters show up in Corp</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>24Nov17</td></tr> <tr><td> - Chat in Corp</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR>24Nov17</td></tr> <tr><td> - Initiate Private Conversation Chat</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Create Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Joining Created Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Chat in Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Load Subscribed Chat Channels Upon Login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Configure Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Leave Chat Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Unsubscribe from Private Chat Channel</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Character and Corporation Lookup (via Search)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="EvE_Mail"> EvE Mail (<font color=pink>Rewrite on hold</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>40.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - System-Generated mail <BR>(insurance, kills, corp notifications, etc.)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Can Send Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Receive Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can View Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Reply-to Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Send Eve-mails to Groups (like Corp)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Create new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Private Mailing Lists Saved to DB/Restored from DB</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send/Receive messages in new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Mail</h3></font></td></tr> <tr><td> - Can Send Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Receive Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can View Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Reply-to Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send Eve-mails to Groups (like Corp)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Create new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Private Mailing Lists Saved to DB/Restored from DB</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send/Receive messages in new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Belt_Manager"> Calendar (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:64%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:64%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>64.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Open Calendar</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - View Events</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Respond to Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td> - Edit Response to Event</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>31Oct20</td></tr> <tr><td> - View Event Responses</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Personal </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporate </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alliance </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=pink>Alliances not implemented</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=pink>Alliances not implemented</font><BR>31Oct20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Market_Details"> Market Details (<font color=pink>Rewrite on hold</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:48%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:48%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>48.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Price History</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - View Items on Market</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - View Item Details (Price History, Buy/Sell orders)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - Buy Items on Market (auto-pick seller)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - Buy Items on Market in Specific Location</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Placing Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Cancelling Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Modify Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Placing Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Cancelling Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Modify Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Market</h3></font></td></tr> <tr><td> - Buy Items on Market (auto-pick seller)</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Buy Items on Market in Specific Location</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Placing Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Cancelling Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Modify Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Placing Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Cancelling Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Modify Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Assets_Window"> Assets Window (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:85%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:85%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>85.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - All Assets View</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Region</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Constellation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Solar System</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Search Assets</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>6Mar14</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - All Assets View</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Region</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Constellation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Solar System</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - Search Assets</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>26May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Wallet_Window"> Wallet </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:98%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>97.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - View Journal Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Shares Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Orders Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Transactions Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - View Journal Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Shares Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Orders Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Transactions Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Contracts_Window"> Contracts (<font color=red>Needs Complete Rewrite</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:16.6%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:16.6%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>16.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Start Page</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - Create Contracts</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working - cannot complete contract<BR>27July15</td></tr> <tr><td> - Get contract info</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - List our contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - List available contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - Delete contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Start Page</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - Create Contracts</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working - cannot complete contract<BR>27July15</td></tr> <tr><td> - Get contract info</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - List our contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - List available contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - Delete contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Map_System"> Map System (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:89%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:89%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>88.7</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can show Solar System map</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can show/use Map Browser (F11)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can search Solar Systems</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can plot routes by searching systems and adding waypoints</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can Get Satistics on Systems</td><td class="working">89% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 89%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Most Aspects Working<BR>25Mar14</td></tr> <tr><td> - Can Get Visited Systems</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get Jumps Last Hour</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get Pilots in Space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26Nov18</td></tr> <tr><td> - Can Get Pilots Docked and Active.</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26Nov18</td></tr> <tr><td> - Can Get Kills / Kills last 24 Hours</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get PodKills / PodKills last 24 Hours</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My Available Agents</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Nov18</td></tr> <tr><td> - Can Get My Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My Assets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My CorpMembers in Space</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Can Get Active Cyno Fields</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Cyno Generator Not Implemented</font><BR>26Nov18</td></tr> <tr><td> - Can Get Recent Sovernity Changes</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR><font color=red>Contested Sovereignty Not Implemented</font><BR>6Mar14</td></tr> <tr><td> - Can Get Incursions</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR><font color=red>Incursions Not Implemented</font><BR>6Mar14</td></tr></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Bookmark_System"> Bookmark System (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>94.4</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Character Bookmarks</h3></font></td></tr> <tr><td> - Bookmark system</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>2Feb20</td></tr> <tr><td> - Bookmarks loaded from database at character login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Bookmark a location in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Bookmark a station, planet, moon, stargate</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Update a Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Delete Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Copy Bookmark to Ship Cargo or Station Hangar</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <p><br style="clear:both;" /></p> <tr><td> - Create a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Update a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Delete a Bookmark Folder</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Move Bookmark to another Folder</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Bookmarks</h3></font></td></tr> <tr><td> - Update a Character Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Update a Corp Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Delete Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Copy Bookmark to Ship Cargo or Station Hangar</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Create a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Update a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Delete a Bookmark Folder</td><td class="working">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Move Bookmark to another Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="fxSystem"> Effects System (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>83.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - <font color=lime>Parsing Effects</font><BR>&nbsp;&nbsp;&nbsp;This is decoding effects data before processing can occur</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fx Source Processing - Item applying the effect</h3></font></td></tr> <tr><td> - <font color=lime>Process Self Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Ship (T1, T2), Module or Charge</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>10Feb20</td></tr> <tr><td> - <font color=lime>Process Skill Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Skill, Implant or Booster</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR><font color=red>Implants and Boosters not implemented</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Ship Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Ship Subsystem (T3 ships only)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED<BR>T3 Ships are not implemented.</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Group Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is not a source per se, this defines the target selection requirements</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>19Jun19</td></tr> <!-- <tr><td> - <font color=lime>Process Gang Effects</font><BR>&nbsp;&nbsp;&nbsp;Fleet Booster Skills</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>Actual Fleet Bonuses are hard-coded and do not process thru Fx System.<BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Owner Effects</font><BR>Owner Source Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Target Effects</font><BR>&nbsp;&nbsp;&nbsp;Target Source Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=orange>Testing</font><BR>19Jun19</td></tr> // --> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fx Target Processing - These vary depending on Source</h3></font></td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Self</font><BR>&nbsp;&nbsp;&nbsp;Source Item or a Location for Group Effects</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Character</font><BR>&nbsp;&nbsp;&nbsp;Character or Character Skills</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>7Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Ship</font><BR>&nbsp;&nbsp;&nbsp;Character's Ship</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Target</font><BR>&nbsp;&nbsp;&nbsp;Ship's current target, either ship or structure.</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Other</font><BR>&nbsp;&nbsp;&nbsp;Character's ship for Skill Source. Specific Module for Charge Source.</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Charge</font><BR>&nbsp;&nbsp;&nbsp;Loaded Charge on a Module or Module Group</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <!-- <tr><td> - <font color=lime>Apply Processed Effects to Area</font><BR>&nbsp;&nbsp;&nbsp;Area Target Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Jun19</td></tr> // --> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Management"> Ship Management (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>79.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can Jettison items into space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can open Jetcans and Add/Remove items within them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can open Containers in space and Add/Remove items within them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can eject from ship to pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can Link Weapons</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can AutoLink Weapons **Using GroupAllWeapons button**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Load Linked Weapons **Linked Weapons Load as a group**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Unload Linked Weapons **Linked Weapons UnLoad as a group**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Un-Link Weapons **Linked Weapons will NOT UnLoad Charges when UnLinked**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <!-- <tr><td> - Charges Stack in cargo while in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec18</td></tr> --> <tr><td> - Unpiloted ships stay in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can board ships in space from pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can name your ship</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can use specialized bays on ships that have them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug17</td></tr> <tr><td> - Can activate Self-Destruct</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>22Aug15</td></tr> <tr><td> - Ships Generate Heat (when modules are activated)</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Ships Dissipate Heat</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Capital Ship Management</h3></font></td></tr> <tr><td> - Can configure ship</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Can install clone</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Can store/retrieve ships</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>15Aug18</td></tr> <tr><td> - Can store/retrieve items from Corporate Hangar</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Fittings"> Ship Fittings Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:10%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:10%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>10</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Save Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Retrieve Saved Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Delete Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Update Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Save Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Retrieve Saved Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Delete Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Update Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Navigation"> Ship Navigation (Destiny) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:91%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:91%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>90.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Stargate Jump</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Orbit Object</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=orange>Hacked</font><BR>15Jul16</td></tr> <tr><td> - Follow Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Approach Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Keep Object at Distance</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Aligning to Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Warp to object on-grid</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Warp to object off-grid</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Dock to Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Undock from Station (with velocity)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Can travel routes using AutoPilot</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font> - <font color=cyan>AP shuts off after every jump</font><BR>7Sep14</td></tr> <tr><td> - Warp-in from random location at login</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=red>NOT IMPLEMENTED</font><BR>10Aug16</td></tr> <tr><td> - Warp-out to random location at logoff</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=red>NOT IMPLEMENTED</font><BR>10Aug16</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Combat"> Combat (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:99%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:97%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>99.2</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can Lock Target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Activate Modules</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Modules affect target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Orbit target</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=orange>Hacked</font><BR>15Jul16</td></tr> <tr><td> - Can Follow target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Keep target at distance</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Pilot moved to pod when ship destroyed</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Dec18</td></tr> <tr><td> - Pilot moved to clone (at clone's location) when pod destroyed</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Module_Management"> Module Management (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:70%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:70%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>70.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can drop modules on ship in Fitting window (auto-insert into slots)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can drop modules on specific slots in Fitting window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can Online/Offline modules in Fitting window</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Can remove modules from Fitting window to cargo or hangar</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Can add/remove charges to modules slots in Fitting window</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can move modules from slot to slot in Fitting window</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can Activate modules on ship (in space only)</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Activated modules on ship in space produce desired effect</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can De-activate modules on ship in space</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - De-activated modules on ship in space remove effect</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can Overload modules (and they work)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Can De-activate Overloaded modules</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Overloaded modules damage bank from heat</td><td class="working">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Can repair damaged modules (using nanite paste)</td><td class="working">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Jan19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Modules"> Ship Module Groups (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:87%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:87%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>87.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Module Group</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Engineering</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Electronic</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Turrets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Missiles</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Other</td><td class="broken">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Aug16</td></tr> <tr><td> - Shields</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Armor</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Hull</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - EWAR</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Propulsion</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Mining</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Gang Assist</td><td class="broken">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Aug16</td></tr> <tr><td> - Rigs</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Drones"> Drones (<font color=cyan>Rewrite in progress</font> - <font color=green>Current</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:18%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:18%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>18.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Launch Drones</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 65%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Scoop to Cargo</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Scoop to Drone Bay</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drone AI </h3></font></td></tr> <tr><td><font color=lime>Passive/Aggressive</font><BR>(toggle - <font color=lime>passive</font>: attack only upon command. <font color=lime>aggressive</font>: attack any valid target.)</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font> - <font color=orange>Very Basic.</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Attack and Follow</font> <font color=yellow>(fighters only)</font><BR>Will chase target in warp.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Assist</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Guard</font></td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Focus Fire</font><BR>All drones fire upon (or mine) same target till destroyed or commanded otherwise.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drone Commands </h3></font></td></tr> <tr><td><font color=lime>Attack</font><BR>Engage target the assigned ship currently-attacking.<BR>If assigned ship has multiple targets, first locked target is chosen.</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font> - <font color=orange>Very Basic.</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Assist</font><BR>Engage anything assigned ship activates offensive module on. (passive/aggressive ignored)</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Guard</font><BR> Retaliate towards any threat to assigned ship.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine</font><BR>Mine assigned asteroid for one cycle, then return and orbit.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine Repeatedly</font><BR>Mine assigned asteroid until depleted or commanded otherwise.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Abandon</font><BR>Relinquish control and ownership of drone.</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Return and orbit</font><BR>Should I explain this?</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Return To Drone Bay</font><BR>To Be Determined.</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Reconnect to Lost Drones</font><BR>Try to reestablish communication with drones previously abandoned or went past ship's drone control range.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="NPC_Combat_Spawning_AI"> NPC AI, Combat &amp; Spawning (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>65.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - NPC look for targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC engage when targeted (if idle)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC approach found targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC lock/engage/orbit targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC notice new targets within sight range, and engage weakest</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Implemented - very buggy<BR>27July15</td></tr> <tr><td> - NPC special actions/call for help/retreat</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <tr><td> - Rats find/harass Characters in space</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Rat Wreck Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Rat Loot</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Science_and_Industry"> Science &amp; Industry (<font color=pink>Rewrite on hold</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:38%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:38%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>38.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Players</h3></font></td></tr> <tr><td> - Research</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - Invention</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar15</td></tr> <tr><td> - Reverse Engineering</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar15</td></tr> <tr><td> - Ore Mining</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - Gas Mining</td><td class="broken">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 30%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Refining and Reprocessing</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Mar18</td></tr> <tr><td> - Manufacturing</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - R&amp;D using Agents</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>30Nov15</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Research</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Invention</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Reverse Engineering</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Refining and Reprocessing</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Manufacturing</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Scan_and_Probing"> Scanning &amp; Probing (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:99%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>99.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - System Scanning using Ship Sensors (Without Probes)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21May16</td></tr> <tr><td> - Directional Scanning (using Ship Sensors)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Launch Probes from ship</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Move Probes in Space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Change Probe Range</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - System Scanning with Probes (See 'Scan Manager' Data Block below for details)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>6Mar18</td></tr> <tr><td> - Bookmark Scanned Result</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Warp to Scanned Result</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Fleet_System"> Fleet System (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>94.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Create Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Fleet management window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set Fleet MOTD</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Fleet Warp</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>23Nov18</td></tr> <tr><td> - View Fleet Composition</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Create/Delete Wings and Squads</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Name Wings and Squads</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Invite to Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Accept Fleet Invite</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Reject Fleet Invite</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Leave Fleet</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Working, but cannot rejoin or create fleet after leave<BR>1Dec17</td></tr> <tr><td> - Kick Member</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Working, but cannot rejoin or create fleet after leave<BR>1Dec17</td></tr> <tr><td> - Move fleet members</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set commanders</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set boosters</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Commanders provide bonuses to their members</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Boosters provide bonuses to their members</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to system</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to bubble</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Add Member to watch list</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Remove Member from watch list</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Fleet chat window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Advertise Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - View Availible Fleets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Apply to Advertised Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - View Fleet Applications</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Planetary_Interaction"> Planetary Interaction System </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:71%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:71%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>71.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Planet Search</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Planet View</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Planet Resource Survey</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Command Center </td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Creating Extractor Heads</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Silo</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Creating logistic routes (links) on planet</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Installing Schematics</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Factory Automation (run schematics)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Space Ports</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Planetary Customs Office</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Launching Items to Customs Office</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Corporation_Management"> Corporation Management </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:67%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:67%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>67.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Create a corporation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>10Dec17</td></tr> <tr><td> - Managing Members</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Apply to Join Corp</td><td class="broken">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Invite to Join Corp</td><td class="broken">50% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Quit Corp</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Kick from Corp</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Roles</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Divisions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Recruitment</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Creating/Editing Advert</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Funds</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Voting</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Roles</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Divisions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Members</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Corp History</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Viewing Journal</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Transactions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Bills</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Viewing Assets</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Renting Office</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Moving HeadQuarters</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Declaring War</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Moving Items In and Out of corp hangars</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Market Deliveries and Returns in Station</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Dec17</td></tr> <tr><td> - Impounded Items</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Dec17</td></tr> <tr><td> - Creating Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Awarding Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Alliance_Management"> Alliance Management (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:11%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:11%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>11</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Creating Alliance</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Join Alliance</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Alliance Bulletins</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Alliance History (Corp Employment)</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>(to eliminate client error in corp window)<BR>25May19</td></tr> <tr><td> - Alliance Wars</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="POS_Operations"> POS - Player Owned Structures (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:61%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:61%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>61.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Deploying Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Scoop Structures to Cargo Bay</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 85%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>28Dec17</td></tr> <tr><td> - Anchoring Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Onlining Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Tower</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Structures Access</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Tower Field Access</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>28Dec17</td></tr> <tr><td> - Can Add/Remove Fuel and Strontium in Tower Holds</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Reinforcing Tower</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Interaction with Structures</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can store/retrieve ships from Ship Maintenance Arrays</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can store/retrieve items from Corporate Hangar Arrays</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can Add/Remove Charges for Offensive Batteries</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Using Structures</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can Take Control of Offensive Batteries</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Moon Mining</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Processing Moon Goo</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Cosmic_Management"> Cosmic Management System (Details in Specific System Listing)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:55%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:55%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>54.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Anomaly Manager</td><td class="working">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Dungeon Manager</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Belt Manager</td><td class="working">81% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - Spawn Manager</td><td class="working">86% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 86%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - Scan Manager</td><td class="working">67% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 67%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - WormHole Manager</td><td class="broken">24% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 24%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Civilian Manager</td><td class="broken">7% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 7%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>27Aug17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Anomaly_Manager"> Anomaly Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:20%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:20%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>19.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Gravametric Site Creation</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Gravametric Site Destruction</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Magnetometric Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Magnetometric Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Radar Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Radar Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Ladar Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Ladar Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Dungeon_Manager"> Dungeon Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>40.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Anomaly Dungeon Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Anomaly Dungeon Destruction</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Mission Dungeon Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Mission Dungeon Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Unrated Dungeon Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Unrated Dungeon Destruction</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Unrated Escalation Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Unrated Escalation Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - DED Complex Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - DED Complex Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Belt_Manager"> Belt Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:81%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:81%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>81.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Asteroid Belt Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroid Belt Destruction</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Grow when idle</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Disappear when mined out (individual roids)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Belts Respawn when empty</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Spawn_Manager"> Spawn Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:65%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width: 65%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>65.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Dynamic spawning (Belt, Mission, Deadspace)</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Static spawning (Gate)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - Spawn Destruction/Removal</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns Warp into Belts</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns Warp out of Belts</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns guard Gates</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Scan_Manager"> Scan Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>80.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Probe Acquiring Data based on Probe's Attributes and Character Skills</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Anomaly Data compilation based on Probe Results</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Reporting of Compiled Data</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="pink">Final Testing</font><BR>11Dec18</td></tr> <tr><td> - Probe Management</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="WormHole_Manager"> WormHole Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:24%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:24%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>24.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - WormHole Creation</td><td class="working">25% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 25%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - WormHole Tracking</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - WormHole Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - View WormHole Details</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Working</font><BR><font color=orange>Testing</font><BR>12Feb17</td></tr> <tr><td> - Jumping thru WormHole</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Civilian_Manager"> Civilian Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:7%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:7%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>7.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Civilian Ship Creation</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - Civilian Ships "Undock" from station</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Civilian Ships "Dock" to station</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Civilian Ships Travel in System</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Civilian Ships Travel using Jump Gates</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> </table><BR><BR> 57f84311b99f7ed6b5f089cda1e8b6452e7f7c64 320 319 2021-04-04T14:21:02Z Jdhirst 10 wikitext text/x-wiki __TOC__ <tr><td class="content"> <h1><center><span class="mw-headline" id="Crucible">EVEmu Crucible Server</span></center></h1> <table style="background: transparent; width:100%"><tr> <td style="text-align: center;"><h2>Estimated Progress of Listed Systems</h2></td></tr></table> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:59%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table></td></tr></table> <table style="background: transparent; width:100%"><tr><td style="text-align: center;"> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:59%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>59.5%</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"><BR><BR> This data is reflection of current EVEmu code status.<BR>If a system is NOT listed here, then it isnt implemented at all.<BR><BR> <BR> Items listed as "<font color=red>NOT IMPLEMENTED</font>" are not coded at all. <BR> The server will not respond to requests, you will get an error, and the server may even crash. (this is ok, and expected)<BR><BR> Items listed as "<font color=magenta>Skeleton Code Only</font>" has a basic outline coded, but limited or no processing and/or returns. <BR> The server may not respond or only partially respond to these requests. You may get an error from these requests, and the server may crash.<BR><BR> Items listed as "<font color=yellow>Preliminary Implementation</font>" have a rough draft of their specific code, just a step or two above skeleton code, and may not function properly or completely. <BR> There will be some response, like opening windows, but will not generate an error and will very seldom crash the server.</font><BR><BR><BR> <font color="orange">Last Update:</font>&nbsp;&nbsp;&nbsp;<font color=green>14 February 2021</font><BR> <font color="orange">Page Status:</font>&nbsp;&nbsp;&nbsp;<font color=red>Outdated</font> - <font color="yellow">Being Updated</font><BR> <font color="orange">Incomplete Data:</font>&nbsp;&nbsp;&nbsp;All data currently under review. Found discrepancies in pre-rewrite tests (before mid-2016)<BR><BR></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="System_Foundation_Fundamentals"> System Foundation Fundamentals (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>62.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"><tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td><td style="width: 26%;">Comments</td></tr> <tr><td> - Stable, Efficient Server Code</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress - eliminating duplicated code and headers, tracking/fixing segfaults, updating code to C++/0x11<BR>14Feb21</td></tr> <tr><td> - Memory Management</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress<BR>While greatly improved over official branch,<BR><font color="red">still horrible</font><BR>14Feb21</td></tr> <tr><td> - Efficient, Accurate Packet Deciphering</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress - Most packets understood and correctly processed<BR>27July15</td></tr> <tr><td> - Mutexes</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>All MT systems correctly lock/unlock data - no data races<BR>14Feb21</td></tr> <tr><td> - Eliminate all compiler Warnings from the EVEmu solution</td><td class="working">50% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="pink">Not Complete</font><BR><font color=olive>Enabling all compiler warnings gives 10.8Mb log file of errors</font><BR>10Dec18</td></tr> <tr><td> - GM commands<BR>Most commands need complete rewrite</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Working</font><BR><font color=magenta>Needs Work</font><BR>27Jun17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Information"> Item Information Windows (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:90%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:90%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>90.0</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Get Item Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Ship Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Skill Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Certification Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Character Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get NPC Corporation Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Player Corporation Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Account_and_Character_Management"> Account and Character Management (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:96%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table></td></tr></table></div></div> <div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><table style="background: transparent; width:96%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>96.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Account Login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>15Feb14</td></tr> <tr><td> - Account Banning/Kicking</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Unknown<BR>2Dec18</td></tr> <tr><td> - Character Creation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>15Feb14</td></tr> <tr><td> - Character Deletion</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar19</td></tr> <tr><td> - Character entrance to last location</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Character Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>17Nov17</td></tr> <tr><td> - Open Skills Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Certificate Window and Planner</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Decorations Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30May19</td></tr> <tr><td> - Open Attributes Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Neural Remap</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Augmentations Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Implants Not Implemented</font><BR>1Feb14</td></tr> <tr><td> - Open Jump Clones Window</td><td class="broken">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Jump Clones Not Implemented</font><BR>1Feb14</td></tr> <tr><td> - Open Bio Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Employment History Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>4Apr14</td></tr> <tr><td> - Open Standings Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>Standings partially Implemented (see below)<BR>17Nov18</td></tr> <tr><td> - Open Security Status Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>SecStatus partially Implemented - changes not saved to db yet.<BR>1Feb14</td></tr> <tr><td> - Open Kill Rights Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Kill Rights Not Implemented</font><BR>1Feb14</td></tr><tr> <td> - Open Combat Log Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>Combat Log partially Implemented<BR>17July17</td></tr> <td> - KillMail</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>17July17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Skills_-_Certificates"> Skills &amp; Certificates (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:98%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>98.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Browse Skills to train</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Add skills to queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Filter skills that don't fit in queue time remaining</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Apply changes to skill queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Pause skill queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Re-Start skill queue after pause</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Skill training time</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Right-click add skill to queue from Skills Window in Character Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Certificate Awarding</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Standings"> Standings (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:19%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:19%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>18.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - <font color=lime>Faction Standings (NPC Alliances)</font> &nbsp;&nbsp;--&nbsp;&nbsp; <font color=yellow>These standings cannot be modified.</font></td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - <font color=lime>CONCORD Standings (Security Rating)</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Agent to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Agent to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Agents respond to Character standings (personal, corp, ally)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - NPC Corp to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions and faction kills</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - NPC Corp to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions and faction kills</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Character to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by PnP window</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Character to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by PnP window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Player Corp to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Player Corp to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Alliance to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Alliance to Alliance&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="NPC_Station_Services"> NPC Station Services (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>82.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Right-click Menu in Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - In-station Guests List</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can repackage ships/items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can assemble ships and items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21Feb14</td></tr> <tr><td> - Can eject from ship to pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Nov15</td></tr> <tr><td> - Can make active ships</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Nov15</td></tr> <tr><td> - Agent Services</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>13Nov18</td></tr> <tr><td> - Trade Services</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=red>corp trade not coded.</font><BR>27Jun17</td></tr> <tr><td> - Repair Services</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Insurance Services</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>22Aug15</td></tr> <tr><td> - Bounty Services</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>22Aug15</td></tr> <tr><td> - Market Services</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR> <font color=red>Corp Buy/Sell Incomplete</font><BR>10Dec18</td></tr> <tr><td> - Medical Services</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=yellow>Few Odd Bugs</font><BR>30Dec14</td></tr> <tr><td> - LP Services</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Clone upgrade</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Clone transfer</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Jump clone installation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Items window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21Feb14</td></tr> <tr><td> - Can merge/stack/split items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can trash items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can open/close containers</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Can move items into/out of containers</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Can inject skills from items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Agents"> Agents (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>63.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Agents Tab</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can initiate conversation with agent</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Agents offer Missions</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can View Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Accept Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Complete Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Search Agents</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>19Nov18</td></tr> <tr><td> - Can Search for character by agent</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Missions"> Missions (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:15%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:15%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>13.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Missions Give Rewards (isk/standings)</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Missions Give LP</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basic Mission Types</h3></font></td></tr> <tr><td> - <font color=lime>Courier Missions</font><BR> Simple delivery where you are requested to move items from one location to another. No standing loss from opposing faction.</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Mining Missions</font><BR> 2 Types. Mine specific ore at specific location, or supply agent with mined ore or reprocessed minerals.</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Security Missions</font><BR> 2 Types. Destroy ships at given location in space. Destroy ships in deadspace pockets using acceleration gates.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Trade Missions</font><BR> Provide Agent with requested items at a specific station. Can be either crafted or bought. <BR> No standing loss from opposing faction.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Mission Types</h3></font></td></tr> <tr><td> - <font color=lime>Tutorial Missions</font><BR> Missions for beginning pilots to learn game basics. On Hold...May not be implemented.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Storyline Missions</font><BR> Special Missions to gain faction standings with agent giving mission. Given after 10-15 basic mission completions. Repeatable.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Research Missions</font><BR> Special Missions given from Research Agents for characters doing research with that agent.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Data Missions</font><BR> Turn in pirate tags for standings. Higher Agents may give basic missions for higher rewards.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Cosmos Missions</font><BR> Small Mission Chains, given from CONCORD agents. Can only be completed once. <BR>Expiration, Failure or Denial forever blocks giving agent.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Anomic Missions</font><BR> Given by L4 Security Agents. Can be declined without penalty. Ship Restrictions.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Arc Missions</font><BR> Large Mission Chains broken into chapters. 7 total Epic Arcs. Can be repeated every 3 months.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Unsorted Missions</font><BR> Custom missions separate from other categories.</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Chats_-_Local_Corp_Custom_Private"> LSC - Large Scale Chat System (<font color=pink>Rewrite on hold</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:68%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:68%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>68.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Open/View Static Server Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Join Static Server Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - rClick Chat Menu</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Characters show up in Local</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>24Nov17</td></tr> <tr><td> - Chat in Local</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Characters show up in Corp</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>24Nov17</td></tr> <tr><td> - Chat in Corp</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR>24Nov17</td></tr> <tr><td> - Initiate Private Conversation Chat</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Create Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Joining Created Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Chat in Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Load Subscribed Chat Channels Upon Login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Configure Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Leave Chat Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Unsubscribe from Private Chat Channel</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Character and Corporation Lookup (via Search)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="EvE_Mail"> EvE Mail (<font color=pink>Rewrite on hold</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>40.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - System-Generated mail <BR>(insurance, kills, corp notifications, etc.)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Can Send Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Receive Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can View Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Reply-to Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Send Eve-mails to Groups (like Corp)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Create new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Private Mailing Lists Saved to DB/Restored from DB</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send/Receive messages in new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Mail</h3></font></td></tr> <tr><td> - Can Send Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Receive Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can View Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Reply-to Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send Eve-mails to Groups (like Corp)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Create new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Private Mailing Lists Saved to DB/Restored from DB</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send/Receive messages in new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Belt_Manager"> Calendar (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:64%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:64%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>64.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Open Calendar</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - View Events</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Respond to Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td> - Edit Response to Event</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>31Oct20</td></tr> <tr><td> - View Event Responses</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Personal </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporate </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alliance </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=pink>Alliances not implemented</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=pink>Alliances not implemented</font><BR>31Oct20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Market_Details"> Market Details (<font color=pink>Rewrite on hold</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:48%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:48%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>48.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Price History</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - View Items on Market</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - View Item Details (Price History, Buy/Sell orders)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - Buy Items on Market (auto-pick seller)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - Buy Items on Market in Specific Location</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Placing Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Cancelling Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Modify Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Placing Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Cancelling Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Modify Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Market</h3></font></td></tr> <tr><td> - Buy Items on Market (auto-pick seller)</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Buy Items on Market in Specific Location</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Placing Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Cancelling Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Modify Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Placing Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Cancelling Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Modify Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Assets_Window"> Assets Window (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:85%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:85%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>85.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - All Assets View</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Region</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Constellation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Solar System</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Search Assets</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>6Mar14</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - All Assets View</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Region</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Constellation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Solar System</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - Search Assets</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>26May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Wallet_Window"> Wallet </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:98%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>97.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - View Journal Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Shares Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Orders Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Transactions Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - View Journal Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Shares Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Orders Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Transactions Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Contracts_Window"> Contracts (<font color=red>Needs Complete Rewrite</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:16.6%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:16.6%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>16.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Start Page</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - Create Contracts</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working - cannot complete contract<BR>27July15</td></tr> <tr><td> - Get contract info</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - List our contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - List available contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - Delete contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Start Page</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - Create Contracts</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working - cannot complete contract<BR>27July15</td></tr> <tr><td> - Get contract info</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - List our contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - List available contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - Delete contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Map_System"> Map System (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:89%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:89%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>88.7</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can show Solar System map</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can show/use Map Browser (F11)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can search Solar Systems</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can plot routes by searching systems and adding waypoints</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can Get Satistics on Systems</td><td class="working">89% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 89%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Most Aspects Working<BR>25Mar14</td></tr> <tr><td> - Can Get Visited Systems</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get Jumps Last Hour</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get Pilots in Space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26Nov18</td></tr> <tr><td> - Can Get Pilots Docked and Active.</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26Nov18</td></tr> <tr><td> - Can Get Kills / Kills last 24 Hours</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get PodKills / PodKills last 24 Hours</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My Available Agents</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Nov18</td></tr> <tr><td> - Can Get My Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My Assets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My CorpMembers in Space</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Can Get Active Cyno Fields</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Cyno Generator Not Implemented</font><BR>26Nov18</td></tr> <tr><td> - Can Get Recent Sovernity Changes</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR><font color=red>Contested Sovereignty Not Implemented</font><BR>6Mar14</td></tr> <tr><td> - Can Get Incursions</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR><font color=red>Incursions Not Implemented</font><BR>6Mar14</td></tr></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Bookmark_System"> Bookmark System (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>94.4</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Character Bookmarks</h3></font></td></tr> <tr><td> - Bookmark system</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>2Feb20</td></tr> <tr><td> - Bookmarks loaded from database at character login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Bookmark a location in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Bookmark a station, planet, moon, stargate</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Update a Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Delete Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Copy Bookmark to Ship Cargo or Station Hangar</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <p><br style="clear:both;" /></p> <tr><td> - Create a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Update a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Delete a Bookmark Folder</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Move Bookmark to another Folder</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Bookmarks</h3></font></td></tr> <tr><td> - Update a Character Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Update a Corp Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Delete Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Copy Bookmark to Ship Cargo or Station Hangar</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Create a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Update a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Delete a Bookmark Folder</td><td class="working">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Move Bookmark to another Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="fxSystem"> Effects System (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>83.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - <font color=lime>Parsing Effects</font><BR>&nbsp;&nbsp;&nbsp;This is decoding effects data before processing can occur</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fx Source Processing - Item applying the effect</h3></font></td></tr> <tr><td> - <font color=lime>Process Self Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Ship (T1, T2), Module or Charge</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>10Feb20</td></tr> <tr><td> - <font color=lime>Process Skill Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Skill, Implant or Booster</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR><font color=red>Implants and Boosters not implemented</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Ship Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Ship Subsystem (T3 ships only)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED<BR>T3 Ships are not implemented.</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Group Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is not a source per se, this defines the target selection requirements</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>19Jun19</td></tr> <!-- <tr><td> - <font color=lime>Process Gang Effects</font><BR>&nbsp;&nbsp;&nbsp;Fleet Booster Skills</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>Actual Fleet Bonuses are hard-coded and do not process thru Fx System.<BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Owner Effects</font><BR>Owner Source Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Target Effects</font><BR>&nbsp;&nbsp;&nbsp;Target Source Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=orange>Testing</font><BR>19Jun19</td></tr> // --> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fx Target Processing - These vary depending on Source</h3></font></td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Self</font><BR>&nbsp;&nbsp;&nbsp;Source Item or a Location for Group Effects</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Character</font><BR>&nbsp;&nbsp;&nbsp;Character or Character Skills</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>7Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Ship</font><BR>&nbsp;&nbsp;&nbsp;Character's Ship</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Target</font><BR>&nbsp;&nbsp;&nbsp;Ship's current target, either ship or structure.</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Other</font><BR>&nbsp;&nbsp;&nbsp;Character's ship for Skill Source. Specific Module for Charge Source.</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Charge</font><BR>&nbsp;&nbsp;&nbsp;Loaded Charge on a Module or Module Group</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <!-- <tr><td> - <font color=lime>Apply Processed Effects to Area</font><BR>&nbsp;&nbsp;&nbsp;Area Target Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Jun19</td></tr> // --> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Management"> Ship Management (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>79.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can Jettison items into space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can open Jetcans and Add/Remove items within them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can open Containers in space and Add/Remove items within them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can eject from ship to pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can Link Weapons</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can AutoLink Weapons **Using GroupAllWeapons button**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Load Linked Weapons **Linked Weapons Load as a group**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Unload Linked Weapons **Linked Weapons UnLoad as a group**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Un-Link Weapons **Linked Weapons will NOT UnLoad Charges when UnLinked**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <!-- <tr><td> - Charges Stack in cargo while in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec18</td></tr> --> <tr><td> - Unpiloted ships stay in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can board ships in space from pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can name your ship</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can use specialized bays on ships that have them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug17</td></tr> <tr><td> - Can activate Self-Destruct</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>22Aug15</td></tr> <tr><td> - Ships Generate Heat (when modules are activated)</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Ships Dissipate Heat</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Capital Ship Management</h3></font></td></tr> <tr><td> - Can configure ship</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Can install clone</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Can store/retrieve ships</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>15Aug18</td></tr> <tr><td> - Can store/retrieve items from Corporate Hangar</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Fittings"> Ship Fittings Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:10%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:10%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>10</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Save Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Retrieve Saved Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Delete Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Update Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Save Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Retrieve Saved Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Delete Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Update Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Navigation"> Ship Navigation (Destiny) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:91%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:91%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>90.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Stargate Jump</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Orbit Object</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=orange>Hacked</font><BR>15Jul16</td></tr> <tr><td> - Follow Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Approach Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Keep Object at Distance</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Aligning to Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Warp to object on-grid</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Warp to object off-grid</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Dock to Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Undock from Station (with velocity)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Can travel routes using AutoPilot</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font> - <font color=cyan>AP shuts off after every jump</font><BR>7Sep14</td></tr> <tr><td> - Warp-in from random location at login</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=red>NOT IMPLEMENTED</font><BR>10Aug16</td></tr> <tr><td> - Warp-out to random location at logoff</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=red>NOT IMPLEMENTED</font><BR>10Aug16</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Combat"> Combat (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:99%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:97%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>99.2</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can Lock Target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Activate Modules</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Modules affect target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Orbit target</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=orange>Hacked</font><BR>15Jul16</td></tr> <tr><td> - Can Follow target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Keep target at distance</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Pilot moved to pod when ship destroyed</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Dec18</td></tr> <tr><td> - Pilot moved to clone (at clone's location) when pod destroyed</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Module_Management"> Module Management (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:70%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:70%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>70.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can drop modules on ship in Fitting window (auto-insert into slots)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can drop modules on specific slots in Fitting window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can Online/Offline modules in Fitting window</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Can remove modules from Fitting window to cargo or hangar</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Can add/remove charges to modules slots in Fitting window</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can move modules from slot to slot in Fitting window</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can Activate modules on ship (in space only)</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Activated modules on ship in space produce desired effect</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can De-activate modules on ship in space</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - De-activated modules on ship in space remove effect</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can Overload modules (and they work)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Can De-activate Overloaded modules</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Overloaded modules damage bank from heat</td><td class="working">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Can repair damaged modules (using nanite paste)</td><td class="working">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Jan19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Modules"> Ship Module Groups (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:87%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:87%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>87.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Module Group</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Engineering</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Electronic</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Turrets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Missiles</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Other</td><td class="broken">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Aug16</td></tr> <tr><td> - Shields</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Armor</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Hull</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - EWAR</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Propulsion</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Mining</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Gang Assist</td><td class="broken">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Aug16</td></tr> <tr><td> - Rigs</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Drones"> Drones (<font color=cyan>Rewrite in progress</font> - <font color=green>Current</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:18%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:18%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>18.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Launch Drones</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 65%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Scoop to Cargo</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Scoop to Drone Bay</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drone AI </h3></font></td></tr> <tr><td><font color=lime>Passive/Aggressive</font><BR>(toggle - <font color=lime>passive</font>: attack only upon command. <font color=lime>aggressive</font>: attack any valid target.)</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font> - <font color=orange>Very Basic.</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Attack and Follow</font> <font color=yellow>(fighters only)</font><BR>Will chase target in warp.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Assist</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Guard</font></td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Focus Fire</font><BR>All drones fire upon (or mine) same target till destroyed or commanded otherwise.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drone Commands </h3></font></td></tr> <tr><td><font color=lime>Attack</font><BR>Engage target the assigned ship currently-attacking.<BR>If assigned ship has multiple targets, first locked target is chosen.</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font> - <font color=orange>Very Basic.</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Assist</font><BR>Engage anything assigned ship activates offensive module on. (passive/aggressive ignored)</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Guard</font><BR> Retaliate towards any threat to assigned ship.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine</font><BR>Mine assigned asteroid for one cycle, then return and orbit.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine Repeatedly</font><BR>Mine assigned asteroid until depleted or commanded otherwise.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Abandon</font><BR>Relinquish control and ownership of drone.</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Return and orbit</font><BR>Should I explain this?</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Return To Drone Bay</font><BR>To Be Determined.</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Reconnect to Lost Drones</font><BR>Try to reestablish communication with drones previously abandoned or went past ship's drone control range.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="NPC_Combat_Spawning_AI"> NPC AI, Combat &amp; Spawning (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>65.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - NPC look for targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC engage when targeted (if idle)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC approach found targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC lock/engage/orbit targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC notice new targets within sight range, and engage weakest</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Implemented - very buggy<BR>27July15</td></tr> <tr><td> - NPC special actions/call for help/retreat</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <tr><td> - Rats find/harass Characters in space</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Rat Wreck Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Rat Loot</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Science_and_Industry"> Science &amp; Industry (<font color=pink>Rewrite on hold</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:38%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:38%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>38.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Players</h3></font></td></tr> <tr><td> - Research</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - Invention</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar15</td></tr> <tr><td> - Reverse Engineering</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar15</td></tr> <tr><td> - Ore Mining</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - Gas Mining</td><td class="broken">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 30%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Refining and Reprocessing</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Mar18</td></tr> <tr><td> - Manufacturing</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - R&amp;D using Agents</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>30Nov15</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Research</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Invention</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Reverse Engineering</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Refining and Reprocessing</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Manufacturing</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Scan_and_Probing"> Scanning &amp; Probing (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:99%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>99.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - System Scanning using Ship Sensors (Without Probes)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21May16</td></tr> <tr><td> - Directional Scanning (using Ship Sensors)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Launch Probes from ship</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Move Probes in Space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Change Probe Range</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - System Scanning with Probes (See 'Scan Manager' Data Block below for details)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>6Mar18</td></tr> <tr><td> - Bookmark Scanned Result</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Warp to Scanned Result</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Fleet_System"> Fleet System (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>94.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Create Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Fleet management window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set Fleet MOTD</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Fleet Warp</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>23Nov18</td></tr> <tr><td> - View Fleet Composition</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Create/Delete Wings and Squads</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Name Wings and Squads</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Invite to Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Accept Fleet Invite</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Reject Fleet Invite</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Leave Fleet</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Working, but cannot rejoin or create fleet after leave<BR>1Dec17</td></tr> <tr><td> - Kick Member</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Working, but cannot rejoin or create fleet after leave<BR>1Dec17</td></tr> <tr><td> - Move fleet members</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set commanders</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set boosters</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Commanders provide bonuses to their members</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Boosters provide bonuses to their members</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to system</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to bubble</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Add Member to watch list</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Remove Member from watch list</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Fleet chat window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Advertise Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - View Availible Fleets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Apply to Advertised Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - View Fleet Applications</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Planetary_Interaction"> Planetary Interaction System </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:71%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:71%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>71.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Planet Search</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Planet View</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Planet Resource Survey</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Command Center </td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Creating Extractor Heads</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Silo</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Creating logistic routes (links) on planet</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Installing Schematics</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Factory Automation (run schematics)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Space Ports</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Planetary Customs Office</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Launching Items to Customs Office</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Dec16</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Corporation_Management"> Corporation Management </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:67%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:67%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>67.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Create a corporation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>10Dec17</td></tr> <tr><td> - Managing Members</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Apply to Join Corp</td><td class="broken">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Invite to Join Corp</td><td class="broken">50% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Quit Corp</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Kick from Corp</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Roles</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Divisions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Recruitment</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Creating/Editing Advert</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Funds</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Voting</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Roles</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Divisions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Members</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Corp History</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Viewing Journal</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Transactions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Bills</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Viewing Assets</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Renting Office</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Moving HeadQuarters</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Declaring War</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Moving Items In and Out of corp hangars</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Market Deliveries and Returns in Station</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Dec17</td></tr> <tr><td> - Impounded Items</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>20Dec17</td></tr> <tr><td> - Creating Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Awarding Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Alliance_Management"> Alliance Management (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:11%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:11%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>11</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Creating Alliance</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Join Alliance</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Alliance Bulletins</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Alliance History (Corp Employment)</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>(to eliminate client error in corp window)<BR>25May19</td></tr> <tr><td> - Alliance Wars</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="POS_Operations"> POS - Player Owned Structures (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:61%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:61%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>61.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Deploying Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Scoop Structures to Cargo Bay</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 85%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>28Dec17</td></tr> <tr><td> - Anchoring Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Onlining Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Tower</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Structures Access</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Tower Field Access</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>28Dec17</td></tr> <tr><td> - Can Add/Remove Fuel and Strontium in Tower Holds</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Reinforcing Tower</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Interaction with Structures</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can store/retrieve ships from Ship Maintenance Arrays</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can store/retrieve items from Corporate Hangar Arrays</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can Add/Remove Charges for Offensive Batteries</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Using Structures</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can Take Control of Offensive Batteries</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Moon Mining</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Processing Moon Goo</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Cosmic_Management"> Cosmic Management System (Details in Specific System Listing)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:55%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:55%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>54.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Anomaly Manager</td><td class="working">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Dungeon Manager</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Belt Manager</td><td class="working">81% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - Spawn Manager</td><td class="working">86% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 86%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - Scan Manager</td><td class="working">67% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 67%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - WormHole Manager</td><td class="broken">24% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 24%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Civilian Manager</td><td class="broken">7% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 7%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>27Aug17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Anomaly_Manager"> Anomaly Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:20%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:20%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>19.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Gravametric Site Creation</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Gravametric Site Destruction</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Magnetometric Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Magnetometric Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Radar Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Radar Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Ladar Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Ladar Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Dungeon_Manager"> Dungeon Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>40.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Anomaly Dungeon Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Anomaly Dungeon Destruction</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Mission Dungeon Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Mission Dungeon Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Unrated Dungeon Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Unrated Dungeon Destruction</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Unrated Escalation Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Unrated Escalation Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - DED Complex Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - DED Complex Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Belt_Manager"> Belt Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:81%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:81%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>81.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Asteroid Belt Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroid Belt Destruction</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Grow when idle</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Disappear when mined out (individual roids)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Belts Respawn when empty</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Spawn_Manager"> Spawn Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:65%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width: 65%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>65.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Dynamic spawning (Belt, Mission, Deadspace)</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Static spawning (Gate)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - Spawn Destruction/Removal</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns Warp into Belts</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns Warp out of Belts</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns guard Gates</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Scan_Manager"> Scan Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>80.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Probe Acquiring Data based on Probe's Attributes and Character Skills</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Anomaly Data compilation based on Probe Results</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Reporting of Compiled Data</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="pink">Final Testing</font><BR>11Dec18</td></tr> <tr><td> - Probe Management</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="WormHole_Manager"> WormHole Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:24%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:24%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>24.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - WormHole Creation</td><td class="working">25% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 25%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - WormHole Tracking</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - WormHole Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - View WormHole Details</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Working</font><BR><font color=orange>Testing</font><BR>12Feb17</td></tr> <tr><td> - Jumping thru WormHole</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Civilian_Manager"> Civilian Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:7%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:7%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>7.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Civilian Ship Creation</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - Civilian Ships "Undock" from station</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Civilian Ships "Dock" to station</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Civilian Ships Travel in System</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Civilian Ships Travel using Jump Gates</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> </table><BR><BR> f1644b047433715d42338dc8cb137c98e666b60b Testing EVEmu 0 25 321 49 2021-04-04T14:29:42Z Jdhirst 10 wikitext text/x-wiki If you don't want to write code, you can test EVEmu! Just follow directions above under EVEmu Crucible Server on the wiki home page to either build from source or get the nightly builds for your machine, modify the client, fire it up and start trying things. Experience with EVE live is very helpful since it will provide you with a reference for how in-game features are supposed to work. ==How to test== * Install EVEmu Server (TODO: Add instructions) * Install Client (TODO: Find binaries) * Connect and use all features (TODO: Specify features) == Testing Spreadsheet == <!--<googlespreadsheet width="600" height="200" style="width: 50%">Google Docs' key goes here</googlespreadsheet>--> 155eb62d70e25aa9f00eba9421ce6887006f240f 325 321 2021-04-04T15:39:53Z Jdhirst 10 wikitext text/x-wiki If you don't want to write code, you can test EVEmu! Just follow directions above under EVEmu Crucible Server on the wiki home page to either build from source or get the nightly builds for your machine, modify the client, fire it up and start trying things. Experience with EVE live is very helpful since it will provide you with a reference for how in-game features are supposed to work. ==How to test== * Install EVEmu Server (TODO: Add instructions) * Install Client (TODO: Find binaries) * Connect and use all features (TODO: Specify features) 223ece6a41682cee187f8f270f71238b415ae9a5 Main Page 0 2 322 238 2021-04-04T14:30:16Z Jdhirst 10 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 9c450e5315f899f02a739778d871d085af1d6f1e 331 322 2021-04-04T16:27:20Z DarksHeiress 7 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 7 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} b8700197a3dcc4f02ee4e27392c06aaa6968d577 332 331 2021-04-04T16:30:21Z Jdhirst 10 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[Quick Start Guide]] - Go here to get started with EVEmu so you can check it out pronto! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 1637b64781fd05b0b6ad3d1c20846197d1330f47 335 332 2021-04-04T16:46:29Z DarksHeiress 7 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 54d7e3fffd3432aa5d6597326fa5cd8c183b8770 340 335 2021-04-04T16:56:42Z DarksHeiress 7 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /><br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online but don't know programming don't worry! We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} e3b6d0a8a5740b8e80ee10f65d1deb343e2681ce 354 340 2021-04-05T14:29:48Z DarksHeiress 7 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. We have more going on than the Server Emulator, see our [[EVEmu Developers Hub#Projects|projects page]] for a complete listing of what we've worked on. Currently, EVEmu supports the EVE Online '''Crucible 1.6.5''' client and for the foreseeable future, we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. Our developers keep an eye on what EVE Online is doing from release to release and from time to time, consider the risk versus reward of upgrading to one of the more recent versions. If you like EVE Online but don't know programming don't worry! We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you like EVE Online and you are a C++ or C# programmer, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]] and we could use some C# programmers for our [[EVEmu Control Panel]] program. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular important areas of our websites, check out these helpful links and our left sidebar has more: '''New Users!''' * [[EVEmu Connect|Connect with us via Discord!]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers!''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project: "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site, if there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} f08466f4afa9dc34f6b312442299288f8da11e01 Xmlpktgen 0 159 323 208 2021-04-04T14:51:57Z DarksHeiress 7 wikitext text/x-wiki == <span id="Description" class="mw-headline"> '''Description''' </span> == XML Packet Generator, abbreviated ''xmlpktgen'', is a tool specifically designed to solve one of the problems with Python interaction: its dynamic typing. Using marshaling and unmarshaling, we are able to reproduce any object that a client sends to us; however, there is nothing we can say about these objects at compile time: are these ints? floats? tuples? Thus the objects passed to calls as arguments (for example) must always be examined and their types must be determined in order to be effectively used in C++. We could do this manually; however, it's soon clear that it's nothing but endless code repetition. So we use the xmlpktgen: if we feed it with proper XML destribing the object(s) we wish to decode, it generates .h/.cpp files with classes that do exactly what we need - scan through given object and pull out stuff we need (ints, strings etc.), according to the given XML description. These classes can also handle inverse operation: given the components, they can construct quite complex objects out of them. <br /> == <span id="Current_usage" class="mw-headline"> '''Current usage''' </span> == In the current setup, its headers are in include/xmlpktgen, source is in src/xmlpktgen. After it's built, it's used to generate .h/.cpp files for .xmlp descriptors in src/eve-common/packets. These generated classes are then used throughout the whole eve-common, eve-tool and eve-server source. == <span id="Example_on_a_real_packet" class="mw-headline"> Example on a real packet </span> == The packet is to big to be pasted here so you can access it here: TBD Let's take this complicated packet as an example on how to create the xmlp code in these situations. First, we look at what we have as a general structure. You start by looking under the [PySubstream] line. There we have a PyString called &quot;CreateCharacterWithDoll&quot; - this is the method that has been called from the client to the server. The client sends information about your character creation results (name, race, gender, bloodline, avatar appearance, picture pose information and schoolID). Under the PyString &quot;CreateCharacterWithDoll&quot; there is a tuple containing 7 items. If you take a close look you can see that the first item it's a string that contains the name of the created character and the rest of the PyInts and PyObjects are the data specified above. The firs thing you want to do is to add a &lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt;, this will define a class named CallCreateCharacterWithDoll that you can later use inside the C++ code. Then you take the first thing under the PySubstream, which is a &lt;tupleInline&gt; and under this you add the elements one by one like this: <pre>&lt;elementDef name=&quot;CallCreateCharacterWithDoll&quot;&gt; &lt;tupleInline&gt; &lt;wstring name = &quot;name&quot; /&gt; &lt;int name = &quot;bloodlineID&quot; /&gt; &lt;int name = &quot;ancestryID&quot; /&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;avatarInfo&quot; /&gt; &lt;/objectInline&gt; &lt;objectInline&gt; &lt;stringInline value = &quot;util.KeyVal&quot; /&gt; &lt;dict name = &quot;poseInfo&quot; /&gt; &lt;/objectInline&gt; &lt;int name = &quot;schoolID&quot; /&gt; &lt;/tupleInline&gt; &lt;/elementDef&gt; </pre> The name after each type (wstring, int, list) specifies the name of the property that will be generated inside the class CallCreateaCharacterWithDoll, it's like saying &quot;int number&quot; in ordinary C++. First 3 lines were pretty straight forward, a string and 2 ints, but what about the fourth one? Well... here is the tricky part... This is an object which consists of a string and a dict; the string &quot;util.KeyVal&quot; describes the dict format which is: &quot;Key Val&quot; (ex: &quot;gold&quot;:99999) a key, named &quot;gold&quot; for example and it's value 99999 which can be an int, float, list or any object. I've chosen this packet because of it's complexity from which you can learn how to deal with types other than the basic int, float, string. Coming soon: The continuation of the the process on how we go about extracting the data and store it in the Data Base. == <span id="XMLP_Format_Demystified" class="mw-headline"> XMLP Format Demystified </span> == XMLP Structure Using it on the C++ side: <pre>&lt;objectInline&gt; &lt;stringInline value=&quot;util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;int name=&quot;itemID&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;attributes&quot;&gt; &lt;dictInt name=&quot;attributes&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;invItem&quot;&gt; &lt;raw name=&quot;invItem&quot; /&gt; obj.invItem = new PyPackedRow(...) &lt;/dictInlineEntry&gt; &lt;dictInlineEntry key=&quot;time&quot;&gt; &lt;/dictInlineEntry&gt; &lt;int name=&quot;time&quot; /&gt; &lt;dictInlineEntry key=&quot;activeEffects&quot;&gt; &lt;dictInt name=&quot;activeEffects&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> example for including an entire xmlp structure into another: <pre>&lt;objectInline&gt; &lt;stringInline value=util.KeyVal&quot; /&gt; &lt;dictInline&gt; &lt;dictInlineEntry key=&quot;itemID&quot;&gt; &lt;element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /&gt; &lt;/dictInlineEntry&gt; &lt;/dictInline&gt; &lt;/objectInline&gt;</pre> <br /> === <span id="Tags_and_their_uses" class="mw-headline"> Tags and their uses </span> === A full list of xmlp tags can be found in Generator.h/.cpp in the &quot;xmlpktgen&quot; project. Use &lt;&gt; not [] wiki formating is evil. '''[elementDef] [/elementDef]''' the outermost wrapper tag around an entire XMLP structure, close with '''[element name=&quot;notes&quot; type=&quot;util_Rowset&quot; /]''' you supply the actual object (not just a pointer) to the util_Rowset '''[elementPtr type=&quot;OnLSC_SenderInfo&quot; name=&quot;sender&quot; /]''' you supply a pointer to the OnLSC_SenderInfo class object instance '''[raw name=&quot;raw_name&quot; /]''' you put a new PyRep * object here, which can be any PyXXXX class pointer '''[objectEx name=&quot;name&quot; type=&quot;a type&quot; optional=&quot;true/false&quot;] [/objectEx]''' specifies a PyObjectEx object, Type it's like util.KeyVal object type and can be left out, Optional asks if it's type 2 or not '''[objectInline]''' specifies a PyObject object, closed by [/objectInline] '''[substreamInline] marshalling/unmarshalling [/substreamInline]''' specifies a PySubStream object - this is used by lower level '''[none /]''' specifies a PyNone object '''[dictInline] [/dictInline]''' wrap a dictionary in this and its closing tag '''[dictInlineEntry key=&quot;dict_key_string&quot;]''' this defines an expected dictionary key value as a string &quot;dict_key_string&quot;, used inside [dictinline] you then need to specify on the next line a value part of this dictionary key-value pair eg: <pre>&lt;dictInlineEntry key=&quot;key_string&quot;&gt; &lt;int name=&quot;int_name&quot; /&gt; &lt;/dictInlineEntry&gt;</pre> '''[dict name=&quot;dict_name&quot; /]''' defines a whole dictionary object of type PyDict '''[dictInt name=&quot;dict_int_name&quot; /]''' defines a whole dictionary with integers used for ALL key values '''[dictStr name=&quot;dict_string_name&quot; /]''' defines a whole dictionary with strings used for ALL key values '''[dictRaw name=&quot;dict_raw_name&quot; key=&quot;key_Ctype&quot; pykey=&quot;key_Ptype&quot; value=&quot;val_Ctype&quot; pyvalue=&quot;val_Ptype&quot; /]''' defines a whole dictionary with &quot;key_Ctype&quot; of a C/C++ type such as uint32 as keys, with the Python type specified type specified by &quot;key_Ptype&quot;, the value C/C++ type specified by &quot;val_Ctype&quot;, and the Python type specified by &quot;val_Ptype&quot; '''[stringInline value=&quot;string_value&quot; /]''' specifies a constant PyString value that contains the string &quot;string_value&quot; '''[tokenInline]''' specifies a PyToken '''[tupleInline]''' wrap a tuple (list of items) in this and its closing tag &lt;/tupleInline&gt; '''[tuple name=&quot;tuple_name&quot; /]''' specifies a tuple object of type PyTuple '''[listInline]''' wrap a list (list of items) in this and its closing tag &lt;/listInline&gt; ['''list name=&quot;list_name&quot; /]''' specifies a list of objects with the name &quot;list_name&quot; '''[listInt name=&quot;list_int_name&quot; /]''' specifies a list of PyInt objects with the name &quot;list_int_name&quot; '''[listStr name=&quot;list_string_name&quot; /]''' specifies a list of PyString objects with the name &quot;list_string_name&quot;; no explicit '''[string name=&quot;string_name&quot; /]''' simple object type PyString with the name &quot;string_name&quot; '''[wstring name=&quot;wstring_name&quot; /]''' simple object type PyWString with the name &quot;wstring_name&quot; '''[real name=&quot;real_name&quot; /]''' simple object type PyFloat with the name &quot;real_name&quot; '''[int name=&quot;int_name&quot; /]''' simple object type PyInt with the name &quot;int_name&quot; '''[long name=&quot;long_name&quot; /]''' simple object type PyLong with the name &quot;long_name&quot; '''[bool name=&quot;bool_name&quot; /]''' simple object type PyBool with the name &quot;bool_name&quot; 435ff1a7e8fa6d496355df83a8a4d5c80412fc44 EVEmu Connect 0 12 324 174 2021-04-04T15:02:01Z DarksHeiress 7 wikitext text/x-wiki ==Discord== Previously any conversations related to EVEmu were hosted on IRC, Teamspeak. These have been moved to a discord server found [https://discord.gg/fTfAREYxbz here.] == Forums == EVEmu has forums! Here you can find information relating to the project, and other things that are not hosted on this wiki or Discord. You can find it [https://forums.evemu.dev/ here.] bc3645a9e05f3f08920f1cc1d327d4ddcbd47f19 Quick Start Guide 0 21 326 235 2021-04-04T15:51:26Z Grenval 6 wikitext text/x-wiki == '''Client configuration''' == '''Get the Client [https://files.evemu.dev/cruc/client/ >>> DOWNLOAD HERE <<<]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe >>> DOWNLOAD HERE <<<] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.</div> == '''Server configuration (From source)''' == '''SERVER COMPILATION:''' sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install '''DATABASE SETUP:''' '''NOTE:''' * ''%devRoot%'' is where the development files are located. * These may be the same location but that is not necessary. # Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; # In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows # Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; '''FINAL STEP:''' # Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc # Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. # Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. # To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server == Test and Report! == Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.<br />You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.<br />[http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 53e6cb5f1dbd9646a275a57b57f4dcbc36e5c277 New Users Guide 0 204 327 2021-04-04T16:09:08Z DarksHeiress 7 Created page with "== Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. Th..." wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ====== '''<u>Popular Providers</u>''' ====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ. ====== '''Password Login''' ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. efff9998e1467bba729e3a334dfe6fd72a78b193 333 327 2021-04-04T16:38:27Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ====== '''<u>Popular Providers</u>''' ====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== '''Password Login''' ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. bb753b0ed973a4de9372ea76a9d10ec24ddea870 334 333 2021-04-04T16:45:29Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ====== '''<u>Popular Providers</u>''' ====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== '''Password Login''' ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. =='''Preparing and Launching your EVEmu Server (Source)'''== '''SERVER COMPILATION:''' sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install '''DATABASE SETUP:''' '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; '''FINAL STEP:''' #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 7bb1c73a3329a8f0365786db48a743bb119c0373 336 334 2021-04-04T16:50:25Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ====== '''<u>Popular Providers</u>''' ====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== '''Password Login''' ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. =='''Preparing and Launching your EVEmu Server (Source)'''== ==== '''SERVER COMPILATION:''' ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== '''DATABASE SETUP:''' ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; '''FINAL STEP:''' #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 6678b1d6f6a83d4c2a5f65b2a33a8e8631355f88 337 336 2021-04-04T16:51:07Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ====== '''<u>Popular Providers</u>''' ====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== '''Password Login''' ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. =='''Preparing and Launching your EVEmu Server (Source)'''== ==== '''Server Compilation''' ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== '''Database Setup''' ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== '''Final Steps:''' ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 45eeac544a3399aff29da5a3e4a0e656419fd32f 338 337 2021-04-04T16:51:53Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ====== '''<u>Popular Providers</u>''' ====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== '''Password Login''' ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. c48ba56ee638e7a554a322e2b8bcac831e3acc2c 339 338 2021-04-04T16:52:16Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. bebb027b003e6961fb244ab0f7b71d25a3dceb53 351 339 2021-04-05T13:59:25Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. fd27919cdbca1363fd726960c3bb1b1240b1db9e 355 351 2021-04-05T14:31:13Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 94c390098a525878917e0db14220f8840e4f0f04 357 355 2021-04-05T18:32:24Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 42eca8aab661cf9343ceca9c0ff9cd9340cec355 Getting Started 0 17 328 33 2021-04-04T16:09:29Z DarksHeiress 7 wikitext text/x-wiki == Getting Started == This page is for people who want to develop EVEmu, if you want to install EVEmu on your system, please go here. '''Testing:''' * Learn more about [[Testing EVEmu]] * [[Eve-tool]] '''Writing Code:''' * You need to know the C or C++ programming language to write code for EVEmu. Learn C/C++ at these locations: ** CPlusPlus.com [https://web.archive.org/web/20141003003235/http://www.cplusplus.com/] *CProgramming.com [https://web.archive.org/web/20141003003235/http://www.cprogramming.com/begin.html] *Source [[ Development Practices]] guide - check this out to see how we like contributing developers to format their code *How to create and use packets in EVEmu - Check this if you don't know how them work '''Packet formating:''' * EveMu [[xmlpktgen]] - How to format packets in XMLP and general information about xmlpktgen. == '''Learn about the EVEmu Codebase''' == * The [[The EVEmu Guide|EVEmu Guide]] - go here to learn about the EVEmu code base and how it's structured * The [[ EVEmu Database Guide|EVEmu Database Guide]] - go here to learn about how EVEmu uses and manages the back end MySQL database == '''Server development''' == * [[EVEmu Roadmap]] WIP Board - CONTAINS SHORT TERM/LONG TERM PROJECT PLAN - also has the list of active developers and what they are currently working on * [[Crucible Project Status|EVEmu Project Tracking]] - this is the list of game features and their operational status in the most recent server builds * [[New Users Guide]] - Basic guide with how to get started with EVEmu and setting up the server. == '''Installer Development''' == * EVEmu Installer == '''Database information''' == * Dumps distributed with EVEmu * Decoding the EVEmu MySQL Tables * Database Tools - information on tools used with the EVEmu database: [[ EVEmu Control Panel]] == '''Live information''' == 4ff58a3db9873787275ff45d303c4da56d14a7c9 329 328 2021-04-04T16:23:31Z DarksHeiress 7 wikitext text/x-wiki == Getting Started == This page is for people who want to develop EVEmu, if you want to install EVEmu on your system, please go here. '''Testing:''' * Learn more about [[Testing EVEmu]] * [[Eve-tool]] '''Writing Code:''' * You need to know the C or C++ programming language to write code for EVEmu. Learn C/C++ at these locations: ** [https://cplusplus.com/ CPlusPlus.com] *[https://www.cprogramming.com/ CProgramming.com] *Source [[ Development Practices]] guide - check this out to see how we like contributing developers to format their code *How to create and use packets in EVEmu - Check this if you don't know how them work '''Packet formating:''' * EveMu [[xmlpktgen]] - How to format packets in XMLP and general information about xmlpktgen. == '''Learn about the EVEmu Codebase''' == * The [[The EVEmu Guide|EVEmu Guide]] - go here to learn about the EVEmu code base and how it's structured * The [[ EVEmu Database Guide|EVEmu Database Guide]] - go here to learn about how EVEmu uses and manages the back end MySQL database == '''Server development''' == * [[Crucible Project Status|EVEmu Project Tracking]] - this is the list of game features and their operational status in the most recent server builds * [[New Users Guide]] - Basic guide with how to get started with EVEmu and setting up the server. == '''Installer Development''' == * EVEmu Installer == '''Database information''' == * Dumps distributed with EVEmu * Decoding the EVEmu MySQL Tables * Database Tools - information on tools used with the EVEmu database: [[ EVEmu Control Panel]] == '''Live information''' == b7deec5ca8d7ad1cfa1524af75c0c2494d1fc80f 347 329 2021-04-05T13:48:37Z DarksHeiress 7 Reformatted and removed no longer used information wikitext text/x-wiki == Getting Started (Development) == Welcome! So you want to do some development work on EVEmu. Great! We can use as much help as we can get with this project. EVEmu needs as many developers as possible, even if you don't currently have the skills needed. Don't worry if you don't this guide will provide you with some resources that will help you with the knowledge gap. As always if you have any questions please contact us on our [[EVEmu Connect|discord or forums.]] ==== Getting Prepared ==== * [[New Users Guide]] will help you setup the EVEmu server and client for your use. * [[Development Practices|Development Practices Guide]] will help you understand how the EVEmu code is formatted. * [[The EVEmu Guide|EVEmu Guide]] will help you understand the EVEmu Code Base and how it is structured. * [[EVEmu Database Guide]] will help you learn how EVEmu utilizes its backend MySQL database. == Writing Code == ==== Learning Resources ==== EVEmu is a learning project. Listed below are some resources that will give you a steady dive into C++ development * [https://cplusplus.com/ CPlusPlus.com] * [https://www.cprogramming.com/ CProgramming.com] ==== '''Packet Formating''' ==== *[[Xmlpktgen]] shows how to format packets in XMLP and general information about xmlpktgen. ==== General Tools ==== * [[Eve-tool|Eve Tool]] is a collection of functions that allow us to do different things with EVE specific data. =='''Testing'''== Developers aren't all that EVEmu needs. We need testers and individuals who want to play the game. * [[Crucible Project Status|EVEmu Project Tracking]] is the list of game features and their operational status in the most recent server builds * [https://github.com/EvEmu-Project/evemu_Crucible/issues EVEmu Issues] is where you will report any issues that you find with the EVEmu Server. 081480192c71705b5aa89d17bfced83e1c062929 348 347 2021-04-05T13:49:23Z DarksHeiress 7 wikitext text/x-wiki == Getting Started (Development) == Welcome! So you want to do some development work on EVEmu. Great! We can use as much help as we can get with this project. EVEmu needs as many developers as possible, even if you don't currently have the skills needed. Don't worry if you don't this guide will provide you with some resources that will help you with the knowledge gap. As always if you have any questions please contact us on our [[EVEmu Connect|discord or forums.]] ==== Getting Prepared ==== * [[New Users Guide]] will help you setup the EVEmu server and client for your use. * [[Development Practices|Development Practices Guide]] will help you understand how the EVEmu code is formatted. * [[The EVEmu Guide|EVEmu Guide]] will help you understand the EVEmu Code Base and how it is structured. * [[EVEmu Database Guide]] will help you learn how EVEmu utilizes its backend MySQL database. == Writing Code == ==== Learning Resources ==== EVEmu is a learning project. Listed below are some resources that will give you a steady dive into C++ development * [https://cplusplus.com/ CPlusPlus.com] * [https://www.cprogramming.com/ CProgramming.com] ==== Packet Formating ==== *[[Xmlpktgen]] shows how to format packets in XMLP and general information about xmlpktgen. ==== General Tools ==== * [[Eve-tool|Eve Tool]] is a collection of functions that allow us to do different things with EVE specific data. ==Testing== Developers aren't all that EVEmu needs. We need testers and individuals who want to play the game. * [[Crucible Project Status|EVEmu Project Tracking]] is the list of game features and their operational status in the most recent server builds * [https://github.com/EvEmu-Project/evemu_Crucible/issues EVEmu Issues] is where you will report any issues that you find with the EVEmu Server. 52f1cbf94d3e483bd2c45c18efb21c2d6aacfe64 349 348 2021-04-05T13:51:32Z DarksHeiress 7 wikitext text/x-wiki == Getting Started (Development) == Welcome! So you want to do some development work on EVEmu. Great! We can use as much help as we can get with this project. EVEmu needs as many developers as possible, even if you don't currently have the skills needed. Don't worry if you don't this guide will provide you with some resources that will help you with the knowledge gap. As always if you have any questions please contact us on our [[EVEmu Connect|discord or forums.]] ==== Getting Prepared ==== * [[New Users Guide]] will help you setup the EVEmu server and client for your use. * [[Development Practices|Development Practices Guide]] will help you understand how the EVEmu code is formatted. * [[The EVEmu Guide|EVEmu Guide]] will help you understand the EVEmu Code Base and how it is structured. * [[EVEmu Database Guide]] will help you learn how EVEmu utilizes its backend MySQL database. == Writing Code == ==== Learning Resources ==== EVEmu is a learning project. Listed below are some resources that will give you a steady dive into C++ development * [https://cplusplus.com/ CPlusPlus.com] * [https://www.cprogramming.com/ CProgramming.com] * [https://www.learncpp.com/ LearnCPP.com] ==== Packet Formating ==== *[[Xmlpktgen]] shows how to format packets in XMLP and general information about xmlpktgen. ==== General Tools ==== * [[Eve-tool|Eve Tool]] is a collection of functions that allow us to do different things with EVE specific data. ==Testing== Developers aren't all that EVEmu needs. We need testers and individuals who want to play the game. * [[Crucible Project Status|EVEmu Project Tracking]] is the list of game features and their operational status in the most recent server builds * [https://github.com/EvEmu-Project/evemu_Crucible/issues EVEmu Issues] is where you will report any issues that you find with the EVEmu Server. d465ef377adacf49aa4b92ae6b883554157cb5dd 350 349 2021-04-05T13:56:43Z DarksHeiress 7 wikitext text/x-wiki == Getting Started (Development) == Welcome! So you want to do some development work on EVEmu. Great! We can use as much help as we can get with this project. EVEmu needs as many developers as possible, even if you don't currently have the skills needed. Don't worry if you don't this guide will provide you with some resources that will help you with the knowledge gap. As always if you have any questions please contact us on our [[EVEmu Connect|discord or forums.]] ==== Getting Prepared (Development) ==== * [[New Users Guide]] will help you setup the EVEmu server and client for your use. * [[Development Practices|Development Practices Guide]] will help you understand how the EVEmu code is formatted. * [[The EVEmu Guide|EVEmu Guide]] will help you understand the EVEmu Code Base and how it is structured. * [[EVEmu Database Guide]] will help you learn how EVEmu utilizes its backend MySQL database. == Writing Code == ==== Learning Resources ==== EVEmu is a learning project. Listed below are some resources that will give you a steady dive into C++ development * [https://cplusplus.com/ CPlusPlus.com] * [https://www.cprogramming.com/ CProgramming.com] * [https://www.learncpp.com/ LearnCPP.com] ==== Packet Formating ==== *[[Xmlpktgen]] shows how to format packets in XMLP and general information about xmlpktgen. ==== General Tools ==== * [[Eve-tool|Eve Tool]] is a collection of functions that allow us to do different things with EVE specific data. ==Getting Started (Testing)== Developers aren't all that EVEmu needs. We need testers and individuals who want to play the game. ==== Getting Prepared (Testing) ==== * [[New Users Guide]] will help you setup the EVEmu server and client for your use. * [[Crucible Project Status|EVEmu Project Tracking]] is the list of game features and their operational status in the most recent server builds * [https://github.com/EvEmu-Project/evemu_Crucible/issues EVEmu Issues] is where you will report any issues that you find with the EVEmu Server. 346c8f31acb997e6df8a084ee2e16988ab9df1ba 352 350 2021-04-05T14:04:37Z DarksHeiress 7 wikitext text/x-wiki == Getting Started (Development) == Welcome! So you want to do some development work on EVEmu. Great! We can use as much help as we can get with this project. EVEmu needs as many developers as possible, even if you don't currently have the skills needed. Don't worry if you don't this guide will provide you with some resources that will help you with the knowledge gap. As always if you have any questions please contact us on our [[EVEmu Connect|discord or forums.]] ==== Getting Prepared (Development) ==== * [[New Users Guide]] will help you setup the EVEmu server and client for your use. * [[Development Practices|Development Practices Guide]] will help you understand how the EVEmu code is formatted. * [[The EVEmu Guide|EVEmu Guide]] will help you understand the EVEmu Code Base and how it is structured. * [[EVEmu Database Guide]] will help you learn how EVEmu utilizes its backend MySQL database. == Writing Code == ==== Learning Resources ==== EVEmu is a learning project. Listed below are some resources that will give you a steady dive into C++ development * [https://cplusplus.com/ CPlusPlus.com] * [https://www.cprogramming.com/ CProgramming.com] * [https://www.learncpp.com/ LearnCPP.com] ==== Packet Formating ==== *[[Xmlpktgen]] shows how to format packets in XMLP and general information about xmlpktgen. ==== General Tools ==== * [[Eve-tool|Eve Tool]] is a collection of functions that allow us to do different things with EVE specific data. ==Getting Started (Testing)== Developers aren't all that EVEmu needs. We need testers and individuals who want to play the game. ==== Getting Prepared (Testing) ==== * [[New Users Guide]] will help you setup the EVEmu server and client for your use. * [[Crucible Project Status|EVEmu Project Tracking]] is the list of game features and their operational status in the most recent server builds * [https://github.com/EvEmu-Project/evemu_Crucible/issues EVEmu Issues] is where you will report any issues that you find with the EVEmu Server. == Testing == There isn't really a definitive way that we can ask you to play test the server. The best way that has been found is to just play the game. Please take a look at the [[Crucible Project Status|EVEmu Project Tracking]] and find things that you want to test. If you find any issues with the server please open a report on our [https://github.com/EvEmu-Project/evemu_Crucible/issues Github Issues]. Please include as much information as you can about the issues that you have encountered to allow our developers to track down the issue. ==== Testing Steps ==== * Install the Client and Server via the [[New Users Guide]] * Play around and experiment on the server * Report any issues on EVEmu's [https://github.com/EvEmu-Project/evemu_Crucible/issues Github Issues]. ddedaa71ba7214f94a559e88a9786de58309b651 Main Page/Admin Links 0 153 330 201 2021-04-04T16:26:26Z DarksHeiress 7 wikitext text/x-wiki '''Use these links to learn about tools used to administer a server:''' * [[New Users Guide]] * [[List_of_Admin_and_GM_Commands.html|List of Admin and GM Commands]] ec45a759baeed82236f4248febeec215d4f56ca9 353 330 2021-04-05T14:29:30Z DarksHeiress 7 wikitext text/x-wiki '''Use these links to learn about tools used to administer a server:''' * [[New Users Guide]] * [[List of Admin and GM Commands]] 94bc9c164971a79423521b9936ca5ad1a771809b Category:EVEmu API Server 14 147 341 180 2021-04-04T21:28:25Z DarksHeiress 7 wikitext text/x-wiki == NOTICE: == This API server has been deprecated as of 0.80. If it still exists in the source it is horrible broken and useless. = <span id="Introduction" class="mw-headline"> Introduction </span> = TBD <br /> = <span id="Player_Tools" class="mw-headline"> Player Tools </span> = EFT and EVEmon have been adapted to successfully connect and communicate with the EVEmu server. Specially adapted copies of these tools can be found in the utils/playertools/ directory under the project root. There is an '''eft''' folder and an '''evemon''' folder that contain the respective tools, modified for use with EVEmu's server port 64 for the API Server. <br /> = <span id="API_Service_Handlers" class="mw-headline"> API Service Handlers </span> = TBD * Admin Service * Account Service * Character Service * Market Service * Corp Service *  ? <br /> = <span id="Creating_API_Account_and_using_it_in_Out_Of_Game_Player_Tools" class="mw-headline"> Creating API Account and using it in Out Of Game Player Tools </span> = The normal way for players to manage their accounts' API server keys is via the [http://wiki.evemu.dev/index.php?title=EVEmu_Web_Portal&action=edit&redlink=1 EVEmu Web Portal]. See that page for details on how to use the web portal to create and manage API server keys. This section details the URL formats for creating and managing API server keys without the use of the web portal. Resources: * [http://wiki.eve-id.net/APIv2_Page_Index APIv2 Reference] - shows all possible things queryable and whether Limited/Full applies The most generic form of any HTTP GET URL used to communicate with EVEmu's API Server takes the form shown here: <pre>http://&lt;server_address&gt;:&lt;port&gt;/&lt;service&gt;/&lt;service_handler&gt;?&lt;param1&gt;=&lt;value1&gt;&amp;&lt;param2&gt;=&lt;value2&gt;&amp;&lt;param3&gt;=&lt;value3&gt;</pre> The number of &lt;param&gt;=&lt;value&gt; pairs is unlimited and must always be preceded by the &amp; character and the last pair must not end with the &amp; character. The following Services exist in the EVEmu API Server: {| !width="50%"| '''Service''' !width="50%"| '''Available Service Handlers''' |- | [[#API_Service_Manager|base]] | none |- | [[#API_Account_Manager|account]] | APIKeyRequest.xml.aspx<br /> Characters.xml.aspx<br /> AccountStatus.xml.aspx |- | [[#API_Admin_Manager|admin]] | none |- | [[#API_Character_Manager|char]] | CharacterSheet.xml.aspx<br /> SkillQueue.xml.aspx<br /> SkillInTraining.xml.aspx |- | [[#API_Corporation_Manager|corp]] | none |- | [[#API_EVE_System_Manager|eve]] | none |- | [[#API_Map_Manager|map]] | none |- | [[#API_Server_Manager|server]] | ServerStatus.xml.aspx |} <br /> == <span id="API_Service_Manager" class="mw-headline"> API Service Manager </span> == <br /> == <span id="API_Account_Manager" class="mw-headline"> API Account Manager </span> == === <span id="API_Key_Request" class="mw-headline"> API Key Request </span> === <pre>http://&lt;server_address&gt;:&lt;port&gt;/account/APIKeyRequest.xml.aspx?username=&lt;username&gt;&amp;password=&lt;password&gt;&amp;keytype=&lt;full|limited&gt;&amp;action=&lt;new|get&gt;</pre> === <span id="Characters" class="mw-headline"> Characters </span> === === <span id="Account_Status" class="mw-headline"> Account Status </span> === <br /> == <span id="API_Admin_Manager" class="mw-headline"> API Admin Manager </span> == <br /> == <span id="API_Character_Manager" class="mw-headline"> API Character Manager </span> == === <span id="Character_Sheet" class="mw-headline"> Character Sheet </span> === === <span id="Skill_Queue" class="mw-headline"> Skill Queue </span> === === <span id="Skill_In_Training" class="mw-headline"> Skill In Training </span> === <br /> == <span id="API_Corporation_Manager" class="mw-headline"> API Corporation Manager </span> == <br /> == <span id="API_EVE_System_Manager" class="mw-headline"> API EVE System Manager </span> == <br /> == <span id="API_Map_Manager" class="mw-headline"> API Map Manager </span> == <br /> == <span id="API_Server_Manager" class="mw-headline"> API Server Manager </span> == === <span id="Server_Status" class="mw-headline"> Server Status </span> === 3a6a23954225f4cf610d7dd1be5db3ae176d770b Development Team 0 10 342 19 2021-04-05T06:20:47Z Jdhirst 10 /* ACTIVE */ wikitext text/x-wiki == EvEMU Developers == === Current Main Developers === ==== ACTIVE ==== * Allan (zhyrohaad) * James (jdhirst) ==== INACTIVE ==== * [Senior Developer] Bloody.Rabbit * [Senior Developer] Captnoord (Co-Founder Per Se) * [Senior Developer] Luck * [Senior Developer] Aknor_Jaden * [Assistant Developer] ozatomic * [Assistant Developer] Reve === Part-Time Developers (Patch Stuff Mostly) === * Almamu === Past Developers === * Beast * Zhur (Founder, is MIA) == EvEMU Control Panel Developers == === Current Main Developers === * Hurracane (Founder) 7b7ea45abe36af7e827bbc3c4612872a69c45cf4 343 342 2021-04-05T06:21:22Z Jdhirst 10 /* EvEMU Developers */ wikitext text/x-wiki == EvEMU Developers == === Current Main Developers === ==== ACTIVE ==== * [Senior Developer] Allan (zhyrohaad) * [Senior Developer] James (jdhirst) ==== INACTIVE ==== * [Senior Developer] Bloody.Rabbit * [Senior Developer] Captnoord (Co-Founder Per Se) * [Senior Developer] Luck * [Senior Developer] Aknor_Jaden * [Assistant Developer] ozatomic * [Assistant Developer] Reve === Part-Time Developers (Patch Stuff Mostly) === * Almamu === Past Developers === * Beast * Zhur (Founder, is MIA) == EvEMU Control Panel Developers == === Current Main Developers === * Hurracane (Founder) 850f99887de30f456aa9ceda480ba190aefe0ad0 List of Admin and GM Commands 0 18 344 35 2021-04-05T07:00:40Z Jdhirst 10 wikitext text/x-wiki == New Commands == ==Game Master(OLD)== {| |/ban<nowiki> </nowiki> (charName) |bans player's account from the server |- |/chatban (characterID) |bans character from channel |- |/create (itemID) [count] |Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- |/dogma (attribute) |change item attribute value |- |/entity (entityID) |unknown |- |/fit (itemID) |Fits selected item to active ship. |- |/getattr (itemID) (attributeID) |Retrieves attribute value. |- |/giveallskills (characterID) |gives all skills to character |- |/giveisk (entityID) (amount) |Give the specified amount of cash to the specified character. 0=self. |- |/giveskill (itemID) |gives skills to fit item. |- |/giveskills (itemID) |gives skills to character. |- |/goto (x) (y) (z) |Jump to the specified position in space. |- |/heal (entityID) |heal the character with the entityID |- |/kick (charName) |kicks [charName] from the server |- |/location |Gives you back your current location in space. |- |/online (entityID) |online all modules on the ship of the entityID. entityID=me=>online my modules |- |/pop (type) (key) (value) |Send an OnRemoteMessage. |- |/repairmodules (entityID) (itemID) |repair the modules of the character with the entityID |- |/search (text) |Search for items matching the specified query |- |/setattr (itemID) (attributeID) (value) |Sets attributeID of itemID to value. |- |/setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) |Change blueprint's attributes. |- |/spawn (typeID) |Spawn an NPC with the specified type. |- |/state |Sends DoDestinyUpdate SetState. |- |/syncloc |Synchonizes your location in client with location on server. |- |<nowiki>/tr [<entityID>|me] <locationID></nowiki> |Translocate the specified person to the specified entity |- |/translocate <entityID> <locationID> |Translocate the specified person to the specified entity |- |/unload (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unspawn (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unban (charName) |removes ban on player's account |- |/whois (characterName) |returns information on character |} ==Admin== ''To be written'' [[Category:User Guide]] ce167c6e5df88f7d9e0e405c383b3b0ef7b1e490 345 344 2021-04-05T07:23:55Z Jdhirst 10 Updated commands list with data from repository. wikitext text/x-wiki === Debug Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |siglist |CONTENT | |lists all active signatures, with location, name, and type. |- |heal |HEALSELF |entityID |heal the character with the entityID |- |healtarget |HEALSELF |entityID |heal the currently active target |- |status |PLAYER | |note giving you detailed ship status information |- |secstatus |PLAYER | |note giving you this character's current security status |- |list |PLAYER | |gives a list of all dynamic entities and players and their destinyState in this bubble |- |commandlist |PLAYER | |gives a list of all game commands, required role, and a description |- |destinyvars |GMH | |shows some current destiny variables |- |shipvars |GMH | |shows other current destiny variables |- |shutdown |GMH | |save all items, kick all connections, and halt server. immediate command. |- |beltlist |PROGRAMMER | |list all roids in current belt's inventory. |- |inventory |PROGRAMMER | |list all items in current location's inventory either station or solsystem). |- |shipinventory |PROGRAMMER | |list all items in current ship's inventory. |- |showsession |PROGRAMMER | |list current session values. |- |skilllist |PROGRAMMER | |list all skills loaded for character. |- |shipdna |PROGRAMMER | |show current ship DNA. |- |targlist |PROGRAMMER | |show current ship target list. |- |bubblelist |PROGRAMMER | |show current objects in bubble, their destiny state, and movement speed. |- |track |PROGRAMMER | |toggles current object movement tracking state. |- |attrlist |PROGRAMMER | |show current attributes for itemID given in args. |- |warpto |GMH | |warp to an object using its itemID. |- |fleetboost |PLAYER | |note giving you detailed fleet boost information |- |fleetinvite |PLAYER | |sets fleet invite scope to <arg> or none |- |getposition |PLAYER | |gets positional data between ship and moon for pos placement testing) |- |bubbletrack |PROGRAMMER | |enable/disable bubble outline tracking. |- |players |PLAYER | |shows list of online players |- |showall |GMH | |shows all dynamic items in system on ship scanner. |- |autostop |PLAYER | |sets repair, boost, and ?? modules to stop when target full |} === GM Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |spawnn |ADMIN |typeID |Spawn an NPC with the specified type. |- |spawn |SPAWN |typeID |Spawn an NPC with the specified type. |- |unspawn |SPAWN |itemID |remove and delete itemID |- |search |VIP |text |Search for items matching the specified query |- |giveisk |GMH |entityID amount |Give the specified amount of cash to the specified character. 0=self. |- |pop |ADMIN |type key value |Send an OnRemoteMessage |- |setbpattr |CONTENT |itemID |copy materialLevel productivityLevel licensedProductionRunsRemaining |- |getattr |VIP |itemID attributeID |Retrieves attribute value. |- |setattr |CONTENT |itemID attributeID value |Sets attributeID of itemID to value. |- |fit |VIP |itemID |Fits selected item to active ship. |- |giveallskills |ADMIN |<nowiki>['me'|<characterID>]</nowiki> |gives ALL skills to designated character or self |- |giveskill |VIP |skillID level |gives skillID to specified level. |- |online |VIP |entityID |online all modules on the ship of the entityID. entityID=me=>online my modules |- |unload |VIP |entityID itemID |unload module itemID from entityID itemID=all=>unload all entityID=me=>my modules |- |repairmodules |HEALSELF |entityID itemID |repair the modules of the character with the entityID |- |giveskills |ADMIN |itemID |gives skills to character. |- |dogma |ADMIN |attribute |change item attribute value |- |kick |ADMIN |charName |kicks [charName] from the server |- |ban |ADMIN |charName |bans player's account from the server |- |unban |ADMIN |charName |removes ban on player's account |- |entity |ADMIN |entityID |unknown |- |chatban |ADMIN |characterID |bans character from channel |- |whois |ADMIN |characterName |returns information on character |} === System Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |create |VIP |itemID [count] |Create count or 1 of the specified item. |- |goto |VIP |x y z |Jump to the specified position in space. Stopped. |- |update |PLAYER | |Sets Current Position according to Server's DestinyManager, then Sends Bubble AddBalls and Destiny SetState. (resets spaceview with current server data) |- |createitem |ADMIN |itemID count |Create count or 1 of the specified item.(from Insider) |- |translocate |VIP |entityID |Translocate to the specified entity |- |tr |VIP |who, entityID |Translocate the specified person to the specified entity |- |halt |VIP | |Immediately stops ship, setting Destiny::State = dstball_halt. |- |location |PLAYER | |Gives you back your current location in space. |- |syncloc |PLAYER | |Synchronizes your location in client with location on server. |- |syncpos |PLAYER | |Synchronizes locations of all dynamic entities in current bubble with location on server for all players in callers bubble. |- |sendstate |CONTENT | |Sends DoDestinyUpdate SetState. |- |addball |PLAYER | |Sends BubbleManager AddBalls. |- |addball2 |PLAYER | |Sends BubbleManager AddBalls2. |- |kill |VIP |entityID |Insta-pops a destroyable ship, drone, structure, if applicable |- |killallnpcs |ADMIN | |Insta-pops all NPC ships in the current bubble |- |cloak |VIP | |instantly and unconditionally toggles cloak state of your vessel |- |sov |CONTENT | |unknown at this time |- |pos |PROGRAMMER | |unknown at this time |- |hop |CONTENT | |unknown at this time |} ==Old Commands (needs to be deleted after merging with above tables== {| |/ban<nowiki> </nowiki> (charName) |bans player's account from the server |- |/chatban (characterID) |bans character from channel |- |/create (itemID) [count] |Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- |/dogma (attribute) |change item attribute value |- |/entity (entityID) |unknown |- |/fit (itemID) |Fits selected item to active ship. |- |/getattr (itemID) (attributeID) |Retrieves attribute value. |- |/giveallskills (characterID) |gives all skills to character |- |/giveisk (entityID) (amount) |Give the specified amount of cash to the specified character. 0=self. |- |/giveskill (itemID) |gives skills to fit item. |- |/giveskills (itemID) |gives skills to character. |- |/goto (x) (y) (z) |Jump to the specified position in space. |- |/heal (entityID) |heal the character with the entityID |- |/kick (charName) |kicks [charName] from the server |- |/location |Gives you back your current location in space. |- |/online (entityID) |online all modules on the ship of the entityID. entityID=me=>online my modules |- |/pop (type) (key) (value) |Send an OnRemoteMessage. |- |/repairmodules (entityID) (itemID) |repair the modules of the character with the entityID |- |/search (text) |Search for items matching the specified query |- |/setattr (itemID) (attributeID) (value) |Sets attributeID of itemID to value. |- |/setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) |Change blueprint's attributes. |- |/spawn (typeID) |Spawn an NPC with the specified type. |- |/state |Sends DoDestinyUpdate SetState. |- |/syncloc |Synchonizes your location in client with location on server. |- |<nowiki>/tr [<entityID>|me] <locationID></nowiki> |Translocate the specified person to the specified entity |- |/translocate <entityID> <locationID> |Translocate the specified person to the specified entity |- |/unload (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unspawn (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unban (charName) |removes ban on player's account |- |/whois (characterName) |returns information on character |} [[Category:User Guide]] 1155e6613101d6ced43024ebb82759a5c4aa97fa 346 345 2021-04-05T07:43:29Z Jdhirst 10 Updated giveisk command with more accurate details wikitext text/x-wiki === Debug Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |siglist |CONTENT | |lists all active signatures, with location, name, and type. |- |heal |HEALSELF |entityID |heal the character with the entityID |- |healtarget |HEALSELF |entityID |heal the currently active target |- |status |PLAYER | |note giving you detailed ship status information |- |secstatus |PLAYER | |note giving you this character's current security status |- |list |PLAYER | |gives a list of all dynamic entities and players and their destinyState in this bubble |- |commandlist |PLAYER | |gives a list of all game commands, required role, and a description |- |destinyvars |GMH | |shows some current destiny variables |- |shipvars |GMH | |shows other current destiny variables |- |shutdown |GMH | |save all items, kick all connections, and halt server. immediate command. |- |beltlist |PROGRAMMER | |list all roids in current belt's inventory. |- |inventory |PROGRAMMER | |list all items in current location's inventory either station or solsystem). |- |shipinventory |PROGRAMMER | |list all items in current ship's inventory. |- |showsession |PROGRAMMER | |list current session values. |- |skilllist |PROGRAMMER | |list all skills loaded for character. |- |shipdna |PROGRAMMER | |show current ship DNA. |- |targlist |PROGRAMMER | |show current ship target list. |- |bubblelist |PROGRAMMER | |show current objects in bubble, their destiny state, and movement speed. |- |track |PROGRAMMER | |toggles current object movement tracking state. |- |attrlist |PROGRAMMER | |show current attributes for itemID given in args. |- |warpto |GMH | |warp to an object using its itemID. |- |fleetboost |PLAYER | |note giving you detailed fleet boost information |- |fleetinvite |PLAYER | |sets fleet invite scope to <arg> or none |- |getposition |PLAYER | |gets positional data between ship and moon for pos placement testing) |- |bubbletrack |PROGRAMMER | |enable/disable bubble outline tracking. |- |players |PLAYER | |shows list of online players |- |showall |GMH | |shows all dynamic items in system on ship scanner. |- |autostop |PLAYER | |sets repair, boost, and ?? modules to stop when target full |} === GM Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |spawnn |ADMIN |typeID |Spawn an NPC with the specified type. |- |spawn |SPAWN |typeID |Spawn an NPC with the specified type. |- |unspawn |SPAWN |itemID |remove and delete itemID |- |search |VIP |text |Search for items matching the specified query |- |giveisk |GMH |entityID amount |Give the specified amount of cash to the specified character. 'me'=self. |- |pop |ADMIN |type key value |Send an OnRemoteMessage |- |setbpattr |CONTENT |itemID |copy materialLevel productivityLevel licensedProductionRunsRemaining |- |getattr |VIP |itemID attributeID |Retrieves attribute value. |- |setattr |CONTENT |itemID attributeID value |Sets attributeID of itemID to value. |- |fit |VIP |itemID |Fits selected item to active ship. |- |giveallskills |ADMIN |<nowiki>['me'|<characterID>]</nowiki> |gives ALL skills to designated character or self |- |giveskill |VIP |skillID level |gives skillID to specified level. |- |online |VIP |entityID |online all modules on the ship of the entityID. entityID=me=>online my modules |- |unload |VIP |entityID itemID |unload module itemID from entityID itemID=all=>unload all entityID=me=>my modules |- |repairmodules |HEALSELF |entityID itemID |repair the modules of the character with the entityID |- |giveskills |ADMIN |itemID |gives skills to character. |- |dogma |ADMIN |attribute |change item attribute value |- |kick |ADMIN |charName |kicks [charName] from the server |- |ban |ADMIN |charName |bans player's account from the server |- |unban |ADMIN |charName |removes ban on player's account |- |entity |ADMIN |entityID |unknown |- |chatban |ADMIN |characterID |bans character from channel |- |whois |ADMIN |characterName |returns information on character |} === System Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |create |VIP |itemID [count] |Create count or 1 of the specified item. |- |goto |VIP |x y z |Jump to the specified position in space. Stopped. |- |update |PLAYER | |Sets Current Position according to Server's DestinyManager, then Sends Bubble AddBalls and Destiny SetState. (resets spaceview with current server data) |- |createitem |ADMIN |itemID count |Create count or 1 of the specified item.(from Insider) |- |translocate |VIP |entityID |Translocate to the specified entity |- |tr |VIP |who, entityID |Translocate the specified person to the specified entity |- |halt |VIP | |Immediately stops ship, setting Destiny::State = dstball_halt. |- |location |PLAYER | |Gives you back your current location in space. |- |syncloc |PLAYER | |Synchronizes your location in client with location on server. |- |syncpos |PLAYER | |Synchronizes locations of all dynamic entities in current bubble with location on server for all players in callers bubble. |- |sendstate |CONTENT | |Sends DoDestinyUpdate SetState. |- |addball |PLAYER | |Sends BubbleManager AddBalls. |- |addball2 |PLAYER | |Sends BubbleManager AddBalls2. |- |kill |VIP |entityID |Insta-pops a destroyable ship, drone, structure, if applicable |- |killallnpcs |ADMIN | |Insta-pops all NPC ships in the current bubble |- |cloak |VIP | |instantly and unconditionally toggles cloak state of your vessel |- |sov |CONTENT | |unknown at this time |- |pos |PROGRAMMER | |unknown at this time |- |hop |CONTENT | |unknown at this time |} ==Old Commands (needs to be deleted after merging with above tables== {| |/ban<nowiki> </nowiki> (charName) |bans player's account from the server |- |/chatban (characterID) |bans character from channel |- |/create (itemID) [count] |Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- |/dogma (attribute) |change item attribute value |- |/entity (entityID) |unknown |- |/fit (itemID) |Fits selected item to active ship. |- |/getattr (itemID) (attributeID) |Retrieves attribute value. |- |/giveallskills (characterID) |gives all skills to character |- |/giveisk (entityID) (amount) |Give the specified amount of cash to the specified character. 0=self. |- |/giveskill (itemID) |gives skills to fit item. |- |/giveskills (itemID) |gives skills to character. |- |/goto (x) (y) (z) |Jump to the specified position in space. |- |/heal (entityID) |heal the character with the entityID |- |/kick (charName) |kicks [charName] from the server |- |/location |Gives you back your current location in space. |- |/online (entityID) |online all modules on the ship of the entityID. entityID=me=>online my modules |- |/pop (type) (key) (value) |Send an OnRemoteMessage. |- |/repairmodules (entityID) (itemID) |repair the modules of the character with the entityID |- |/search (text) |Search for items matching the specified query |- |/setattr (itemID) (attributeID) (value) |Sets attributeID of itemID to value. |- |/setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) |Change blueprint's attributes. |- |/spawn (typeID) |Spawn an NPC with the specified type. |- |/state |Sends DoDestinyUpdate SetState. |- |/syncloc |Synchonizes your location in client with location on server. |- |<nowiki>/tr [<entityID>|me] <locationID></nowiki> |Translocate the specified person to the specified entity |- |/translocate <entityID> <locationID> |Translocate the specified person to the specified entity |- |/unload (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unspawn (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unban (charName) |removes ban on player's account |- |/whois (characterName) |returns information on character |} [[Category:User Guide]] bc0ee4e112ded0593f31ba36710dcc5a9d8d55ed Main Page/Developer Links 0 8 356 232 2021-04-05T14:32:45Z DarksHeiress 7 wikitext text/x-wiki '''Use these links to learn about development status and ongoing development work:''' * ACTIVE ** [[ Crucible Project Status]] | [[ Project Plan]] * RESOURCES **[[ Getting Started]] ** [[ Development Team]] ** [[ Development Practices]] ** [[ Source Code]] **[[EVEmu_Connect|Connect with the community]] 7869356c29dab5f845103d09cb214f2c22ee05c0 New Users Guide 0 204 358 357 2021-04-05T19:00:36Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 80ad8dcd0f305f4bc9f65279c9bea2424d90ea9c 359 358 2021-04-05T19:39:52Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' # Download <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> to the same directory. # Make sure that all files are in the same directory and double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 02988dfc51a4ac85915f056b6cffaacf78a7bab0 361 359 2021-04-07T00:12:34Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' # Download <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> to the same directory. # Make sure that all files are in the same directory and double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 19f26807dd159b42b11838b48cbaa4280324b358 383 361 2021-04-07T15:56:47Z Allan 3 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: ==fix this== use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' # Download <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> to the same directory. # Make sure that all files are in the same directory and double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 7200663f3ed79315525c2c9827f15aef0e5ef526 384 383 2021-04-07T15:58:09Z Allan 3 made note about market seeding scripts. will need further review and editing wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows #Optionally you can seed the market by running these SQL queries: ==fix this. these should not be run like this. only region_market OR station_market. data is just data and not run.== use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' # Download <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> to the same directory. # Make sure that all files are in the same directory and double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 866cf9986e19d684321095f8714d08f81a1c66dc 385 384 2021-04-07T16:03:16Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' # Download <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> to the same directory. # Make sure that all files are in the same directory and double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 20b76396124624b44c110d4f019d69bcc72cf614 386 385 2021-04-07T16:13:17Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== # Run <code>sudo apt-get update && sudo apt-get upgrade</code> # Run <code>sudo apt-get install build-essential g++ cmake git</code> # Run <code>sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql</code> # Run <code>sudo apt-get install zlib1g-dev zlib1g-dbg</code> # Run <code>sudo apt-get install libboost1.54</code> # Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible</code> # Run <code>cd evemu_Crucible</code> # Run <code>mkdir build</code> # Run <code>cd build</code> # Run <code>cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist ..</code> # Run <code>make -j(Number of cores you have available)</code> # Run <code>make install</code> ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell via <code>mysql -u root -p</code> and input the following: ## Note: This will prompt you for the password you set in the Previous Step create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows ##Note: You will have to edit the install.sh or install.bat files to reflect the password you set in the previous step. ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' # Download <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> to the same directory. # Make sure that all files are in the same directory and double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 76e73033a20ba96f08a34daca7591629f0e3b303 407 386 2021-04-14T14:59:38Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== # Run <code>sudo apt-get update && sudo apt-get upgrade</code> # Run <code>sudo apt-get install build-essential g++ cmake git</code> # Run <code>sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql</code> # Run <code>sudo apt-get install zlib1g-dev zlib1g-dbg</code> # Run <code>sudo apt-get install libboost1.54</code> # Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible</code> # Run <code>cd evemu_Crucible</code> # Run <code>mkdir build</code> # Run <code>cd build</code> # Run <code>cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist ..</code> # Run <code>make -j(Number of cores you have available)</code> # Run <code>make install</code> ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell via <code>mysql -u root -p</code> and input the following: ## Note: This will prompt you for the password you set in the Previous Step create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows ##Note: You will have to edit the install.sh or install.bat files to reflect the password you set in the previous step. ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''Get the Client [https://files.evemu.dev/cruc/client/ here]''' # Download <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> to the same directory. # Make sure that all files are in the same directory and double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe here]''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! '''Notice:''' There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs. See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. a0bb477b404b3b7e13a4b39a890857f126906f0c Development Practices 0 9 360 17 2021-04-06T01:04:31Z DarksHeiress 7 wikitext text/x-wiki '''This page is devoted to describing the best practices, methods, and policies that EVEmu Developers espouse to uphold while working on the EVEmu Project. All Developers are expected to follow these guidelines and policies all in the effort to ensure a smoothly executed development <nowiki> </nowiki>process and collaborative effort to produce great quality code and a great product.''' = Source Control = TODO: describe how we use github, git, repos, branches, tags, and merges. '''GIT''': * Our process for developers to contribute: *# Get your '''own''' account on '''Github''' and '''Fork''' the evemuproject repository for which you wish to contribute (evemu_server, evemu_control_panel, etc) *# Git clone your fork on github to your local machine - Github's help on forking a repo and cloning it *# Make some changes to code as you work on a feature implementation, enhancement, or bug fix *# Commit those changes with a descriptive commit message (see below at '''Commits''') *# If the feature is not working yet because you have more changes to make, repeat the previous two steps until you have something worth posting up for the community to review and try out *# When you're ready to post a bundle of commits as a Pull Request, first, exit Visual Studio, then RE-run CMake Configure then Generate. Open Visual Studio again and do a FULL REBUILD of the '''ALL_BUILD''' project. When the build is finished, run the server and in the console window, ensure the '''version:''' reads the latest tag, the master branch, and your latest commit ID, something like '''0.7.12-master-ba5d6d3'''. The first three numbers are the tag (at git cmd line, type '''git tag''' to list all tags, see which is highest). The middle string is your branch (should be master unless you're working on a parallel branch). The last is your latest commitID (at git cmd line, type '''git log --oneline''' and at top of that list on the left is your latest commitID showing the first 7 digits or so). *# After you've ensured your build matches the latest tag and commitID, go to your Github account page under your fork of the repository you're working on, then either click on the green square button to the left of the branch change drop-down (below the # of commits display) OR click on the label '''Pull Request''' to the upper right of the area that lists the folders and files in your repository. It's to the left of a label '''Compare''' in the heading bar above the list of files and folders. *# Next, click the button with blue box border labeled '''Click to create a pull request for this comparison''' *# Right away, Github gives you feedback on whether the maintainers of the repository to which you're pushing a pull request will be able to automatically merge your pull request's changes. If you don't get the green check mark and the message '''Able to merge''', then you'll need to bring your fork up to date with the original repository and try again. *# If you do get the green check, enter a Title and Description for your pull request and click '''Send Pull Request''' button and away it goes! *# Please be patient as it will take some time for the EVEmu Development team to review and discuss, perhaps even test, your pull request's changes. It may even be rejected, but the team will provide some helpful comments on the pull request whether it has been rejected or not. These things are often an iterative process, so be patient and be prepared to expect to have to make further changes before the development team accepts the pull request. The higher quality code changes you make and the more you discussed the changes with developers ahead of submitting the pull request, the more likely your pull request may be accepted on the first round after some review period. '''Commits''': * when making commits, keep them small, a few files or so, and commit OFTEN! this leaves you nice history of your work as it progresses * when making commits, either use a GUI such as '''SmartGitHg''' or '''git gui''' to write your commit messages, stage files for commit, and ultimately commit the changes and even push them up to your fork for issuance of a pull request to the main evemuproject project page * write commit messages that make sense and are descriptive enough to tell others what you did and why ** BAD Commit message: '''i changed some code''' ** MEH Commit message: '''i added some classes to the module manager''' ** BEST Commit message: '''Added Effects, EffectsMap, and ShipBonusModifierMap classes to the ModuleManager effort. Updated SQL files for the following tables 'dgmEffectsInfo', 'dgmShipBonusModifiers' to match the data pulled and reformatted from EVEHQ CSV files. Added completed LibreOffice spreadsheets for the following EVEHQ CSV files: Effects.ods, ShipBonuses.ods, SkillBonuses.ods''' * when making commits as part of a larger effort, such as to fix Private Convos in the LSC system, or implement P2P trades in the Trade Service, keep your commits local until you have a feature working, then post up a pull request with a bundle of commits rather than posting pull requests for each small commit you make * '''PLEASE'''....after making a pull request, wait until it has been approved before committing additional files to avoid unnecessarily large PRs. == Coding styles and standards == While we do not have a formal coding style guide, let me put it as simply as I can: * Please stay within the spirit of the design and styles that you see already being used in the code, to the extent that you can. * Please do not do major edits of whitespace all over (changing tabs to 4-space chunks, making separation between functions 2 lines instead of one, etc) * Please do not make large edits of comments, but rather keep them compartmentalized into sections of code, such as within the LSC chat system or Ship class == Bug reporting == [https://github.com/EvEmu-Project/evemu_Crucible/issues Every bug should be reported on our github's project page] '''IMPORTANT '''- Before posting a bug, please take a few minutes to search the bug database for the project you're working on to see if someone else already reported the bug. If this is similar to another bug or bugs, we can link them together, but it's ok to post a new bug if <nowiki> </nowiki>there are aspects about it that are unique from the other similar bug reports. Please post bugs using the following format: * '''PROBLEM''' ** Describe what the problem is and what you were doing when it occurred. Please post server console log in EVEmu's Pastebin and mark expiration as NEVER, then post a link to that pastebin in this section. Feel free to upload to imgur.com or other photo sharing site a screenshot of the client if applicable when something weird or unexpected happens and link to the image in this section. * '''STEPS TO REPRODUCE''' ** In this section, please describe in as best a detail and accuracy as you can the steps someone else must take in order to reproduce this problem. It is absolutely essential that developers and bug fixers have these steps as they must be able to reproduce the bugs or crashes in order to start investigating them and eventually fix them. We certainly understand if you cannot recall or are somehow unable to describe how the problem occurred. If that is the case, please do your best in describing how you came about the crash or bug and what you were doing leading up to when it happened. * '''WORKAROUNDS''' ** This section is meant to capture known methods by which you can accomplish what you were trying to do, but in a slightly different way. An example could be "I was trying to buy something off the market, but opening up the market window crashed the server." For this, a possible effective workaround would be "I can still use .create GM command to give myself the item I wanted." * '''PROPOSED SOLUTIONS''' ** This section is really reserved for developers posting bugs that may be somewhat or very familiar with the systems behind the scenes in the server that relate to the bug or crash. This section is meant to be a notepad of sorts to jot down ideas as to how the problem could be fixed or circumvented when they are fresh in the mind of the developer that encountered the bug or crash. Most users and testers may leave this blank unless you think you have a good idea :) 66b421f996d2e97e0e5e698fa3847b92ff17b663 392 360 2021-04-07T18:58:35Z Allan 3 /* Coding styles and standards */ wikitext text/x-wiki '''This page is devoted to describing the best practices, methods, and policies that EVEmu Developers espouse to uphold while working on the EVEmu Project. All Developers are expected to follow these guidelines and policies all in the effort to ensure a smoothly executed development <nowiki> </nowiki>process and collaborative effort to produce great quality code and a great product.''' = Source Control = TODO: describe how we use github, git, repos, branches, tags, and merges. '''GIT''': * Our process for developers to contribute: *# Get your '''own''' account on '''Github''' and '''Fork''' the evemuproject repository for which you wish to contribute (evemu_server, evemu_control_panel, etc) *# Git clone your fork on github to your local machine - Github's help on forking a repo and cloning it *# Make some changes to code as you work on a feature implementation, enhancement, or bug fix *# Commit those changes with a descriptive commit message (see below at '''Commits''') *# If the feature is not working yet because you have more changes to make, repeat the previous two steps until you have something worth posting up for the community to review and try out *# When you're ready to post a bundle of commits as a Pull Request, first, exit Visual Studio, then RE-run CMake Configure then Generate. Open Visual Studio again and do a FULL REBUILD of the '''ALL_BUILD''' project. When the build is finished, run the server and in the console window, ensure the '''version:''' reads the latest tag, the master branch, and your latest commit ID, something like '''0.7.12-master-ba5d6d3'''. The first three numbers are the tag (at git cmd line, type '''git tag''' to list all tags, see which is highest). The middle string is your branch (should be master unless you're working on a parallel branch). The last is your latest commitID (at git cmd line, type '''git log --oneline''' and at top of that list on the left is your latest commitID showing the first 7 digits or so). *# After you've ensured your build matches the latest tag and commitID, go to your Github account page under your fork of the repository you're working on, then either click on the green square button to the left of the branch change drop-down (below the # of commits display) OR click on the label '''Pull Request''' to the upper right of the area that lists the folders and files in your repository. It's to the left of a label '''Compare''' in the heading bar above the list of files and folders. *# Next, click the button with blue box border labeled '''Click to create a pull request for this comparison''' *# Right away, Github gives you feedback on whether the maintainers of the repository to which you're pushing a pull request will be able to automatically merge your pull request's changes. If you don't get the green check mark and the message '''Able to merge''', then you'll need to bring your fork up to date with the original repository and try again. *# If you do get the green check, enter a Title and Description for your pull request and click '''Send Pull Request''' button and away it goes! *# Please be patient as it will take some time for the EVEmu Development team to review and discuss, perhaps even test, your pull request's changes. It may even be rejected, but the team will provide some helpful comments on the pull request whether it has been rejected or not. These things are often an iterative process, so be patient and be prepared to expect to have to make further changes before the development team accepts the pull request. The higher quality code changes you make and the more you discussed the changes with developers ahead of submitting the pull request, the more likely your pull request may be accepted on the first round after some review period. '''Commits''': * when making commits, keep them small, a few files or so, and commit OFTEN! this leaves you nice history of your work as it progresses * when making commits, either use a GUI such as '''SmartGitHg''' or '''git gui''' to write your commit messages, stage files for commit, and ultimately commit the changes and even push them up to your fork for issuance of a pull request to the main evemuproject project page * write commit messages that make sense and are descriptive enough to tell others what you did and why ** BAD Commit message: '''i changed some code''' ** MEH Commit message: '''i added some classes to the module manager''' ** BEST Commit message: '''Added Effects, EffectsMap, and ShipBonusModifierMap classes to the ModuleManager effort. Updated SQL files for the following tables 'dgmEffectsInfo', 'dgmShipBonusModifiers' to match the data pulled and reformatted from EVEHQ CSV files. Added completed LibreOffice spreadsheets for the following EVEHQ CSV files: Effects.ods, ShipBonuses.ods, SkillBonuses.ods''' * when making commits as part of a larger effort, such as to fix Private Convos in the LSC system, or implement P2P trades in the Trade Service, keep your commits local until you have a feature working, then post up a pull request with a bundle of commits rather than posting pull requests for each small commit you make * '''PLEASE'''....after making a pull request, wait until it has been approved before committing additional files to avoid unnecessarily large PRs. == Coding styles and standards == While we do not have a formal coding style guide, let me put it as simply as I can: * Please stay within the spirit of the design and styles that you see already being used in the code, to the extent that you can. Functions and Methods use the lowerCamelCase naming convention. C-type macros and #DEFINEs use ALL_UPPERCASE with hard spaces. Variables are named as to their intended use, where possible, and use lowerCamelCase also. * Please do not do major edits of whitespace all over (changing tabs to 4-space chunks, making separation between functions 2 lines instead of one, etc) * Please do not make large edits of comments, but rather keep them compartmentalized into sections of code, such as within the LSC chat system or Ship class == Bug reporting == [https://github.com/EvEmu-Project/evemu_Crucible/issues Every bug should be reported on our github's project page] '''IMPORTANT '''- Before posting a bug, please take a few minutes to search the bug database for the project you're working on to see if someone else already reported the bug. If this is similar to another bug or bugs, we can link them together, but it's ok to post a new bug if <nowiki> </nowiki>there are aspects about it that are unique from the other similar bug reports. Please post bugs using the following format: * '''PROBLEM''' ** Describe what the problem is and what you were doing when it occurred. Please post server console log in EVEmu's Pastebin and mark expiration as NEVER, then post a link to that pastebin in this section. Feel free to upload to imgur.com or other photo sharing site a screenshot of the client if applicable when something weird or unexpected happens and link to the image in this section. * '''STEPS TO REPRODUCE''' ** In this section, please describe in as best a detail and accuracy as you can the steps someone else must take in order to reproduce this problem. It is absolutely essential that developers and bug fixers have these steps as they must be able to reproduce the bugs or crashes in order to start investigating them and eventually fix them. We certainly understand if you cannot recall or are somehow unable to describe how the problem occurred. If that is the case, please do your best in describing how you came about the crash or bug and what you were doing leading up to when it happened. * '''WORKAROUNDS''' ** This section is meant to capture known methods by which you can accomplish what you were trying to do, but in a slightly different way. An example could be "I was trying to buy something off the market, but opening up the market window crashed the server." For this, a possible effective workaround would be "I can still use .create GM command to give myself the item I wanted." * '''PROPOSED SOLUTIONS''' ** This section is really reserved for developers posting bugs that may be somewhat or very familiar with the systems behind the scenes in the server that relate to the bug or crash. This section is meant to be a notepad of sorts to jot down ideas as to how the problem could be fixed or circumvented when they are fresh in the mind of the developer that encountered the bug or crash. Most users and testers may leave this blank unless you think you have a good idea :) 8b97a3828b7071065cb511aa95fecab02a4d72e1 File:Docker-compose.png 6 205 362 2021-04-07T00:22:05Z DarksHeiress 7 wikitext text/x-wiki EVEmu docker-compose.yml 845abe047be2d279244366123aa7822a350ec850 Next Steps 0 206 363 2021-04-07T00:57:28Z DarksHeiress 7 Created page with "== Introduction == Welcome! This is the next part in our EVEmu tutorial. At this point you should have a working server and client and be able to connect. We're going to cover..." wikitext text/x-wiki == Introduction == Welcome! This is the next part in our EVEmu tutorial. At this point you should have a working server and client and be able to connect. We're going to cover a couple different topics here so please check the Contents to find out what exactly you're looking for. == Market Seeding == The EVEmu Market by default comes unseeded. This means that there are no buy or sell orders populated into the database. We're going to cover how to fix that. ==== Docker Seeding ==== [[File:Docker-compose.png|thumb|Figure 1]] To be able to seed our market with the EVEmu docker setup we have to make a few changes to the <code>docker-compose.yml</code> # Locate your root EVEmu directory # Assuming you are on linux run <code>nano docker-compose.yml</code> # You should be presented with something like Figure 1 # There are two changes you need to make here. Change <code>#ports:</code> to be <code>ports:</code>. Do this by removing the # in front of the line # Next remove the # in front of <code>#  - "3306:3306"</code> so that it looks like <code>  - "3306:3306"</code> # <code>Ctrl + O</code> # Click Enter # <code>Ctrl + X</code> # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter <code>evemu</code> # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script ==== Source Seeding ==== # Locate your root EVEmu directory # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter your evemu users password. # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script 10329c256f072c4084f8d09a3275727aeb39f330 364 363 2021-04-07T01:00:22Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome! This is the next part in our EVEmu tutorial. At this point you should have a working server and client and be able to connect. We're going to cover a couple different topics here so please check the Contents to find out what exactly you're looking for. == Market Seeding == The EVEmu Market by default comes unseeded. This means that there are no buy or sell orders populated into the database. We're going to cover how to fix that. ==== Docker Seeding ==== [[File:Docker-compose.png|thumb|Figure 1]] To be able to seed our market with the EVEmu docker setup we have to make a few changes to the <code>docker-compose.yml</code> # Locate your root EVEmu directory # Assuming you are on linux run <code>nano docker-compose.yml</code> # You should be presented with something like Figure 1 # There are two changes you need to make here. Change <code>#ports:</code> to be <code>ports:</code>. Do this by removing the # in front of the line # Next remove the # in front of <code>#  - "3306:3306"</code> so that it looks like <code>  - "3306:3306"</code> # <code>Ctrl + O</code> # Click Enter # <code>Ctrl + X</code> # Run your build again by running <code>docker-compose -p evemu up -d</code> # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter <code>evemu</code> # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script # Now with your market successfully seeded we suggest undoing steps 4 and 5 by replacing the comments and rerunning step 9. This makes your database no longer accessible from anywhere protecting it. ==== Source Seeding ==== # Locate your root EVEmu directory # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter your evemu users password. # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script 6e2776025b01e5ca780f7444064c01d25538df32 365 364 2021-04-07T01:07:01Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome! This is the next part in our EVEmu tutorial. At this point you should have a working server and client and be able to connect. We're going to cover a couple different topics here so please check the Contents to find out what exactly you're looking for. == Market Seeding == The EVEmu Market by default comes unseeded. This means that there are no buy or sell orders populated into the database. We're going to cover how to fix that. ==== Docker Seeding ==== [[File:Docker-compose.png|thumb|Figure 1]] To be able to seed our market with the EVEmu docker setup we have to make a few changes to the <code>docker-compose.yml</code> # Locate your root EVEmu directory # Assuming you are on linux run <code>nano docker-compose.yml</code> # You should be presented with something like Figure 1 # There are two changes you need to make here. Change <code>#ports:</code> to be <code>ports:</code>. Do this by removing the # in front of the line # Next remove the # in front of <code>#  - "3306:3306"</code> so that it looks like <code>  - "3306:3306"</code> # <code>Ctrl + O</code> # Click Enter # <code>Ctrl + X</code> # Run your build again by running <code>docker-compose -p evemu up -d</code> # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter <code>evemu</code> # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script # Now with your market successfully seeded we suggest undoing steps 4 and 5 by replacing the comments and rerunning step 9. This makes your database no longer accessible from anywhere protecting it. ==== Source Seeding ==== # Locate your root EVEmu directory # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter your evemu users password. # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script == Upgrading == Upgrading EVEmu to the latest build is quite easy. Assuming that you are utilizing Docker # Locate your EVEmu directory. Navigate out of it with <code>cd ..</code> # Run <code>rm -rf evemu_Crucible</code> ## The above is a very dangerous command. The way it is written right now only removes the EVEmu folder. ## This command removes the EVEmu Crucible folder which we will repull from the repository in the next step. Don't worry all of your game data is safe as we store it on Docker Volumes # Now run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code> # Run <code>cd evemu_Crucible</code> # Run <code>docker-compose -p evemu up -d --build</code> # This will completely rebuild the EVEmu server from source and redeploy it. # Upgrade Complete. 67562910d2316606f3324bcf12a0b1ae94121901 408 365 2021-04-14T15:05:07Z DarksHeiress 7 wikitext text/x-wiki == Introduction == Welcome! This is the next part in our EVEmu tutorial. At this point you should have a working server and client and be able to connect. We're going to cover a couple different topics here so please check the Contents to find out what exactly you're looking for. == Known Issues == EVEmu as it is currently in development still has many known issues. Below will be a list of fixes that should fix common issues. ==== First Launch ==== This will fix an issue that causes some errors to pop up and certification planner to not open # After you have logged into the game for the first time click <code>ESC</code> # Go to <code>General Settings</code> # Uncheck <code>Show Tutorials</code> == Market Seeding == The EVEmu Market by default comes unseeded. This means that there are no buy or sell orders populated into the database. We're going to cover how to fix that. ==== Docker Seeding ==== [[File:Docker-compose.png|thumb|Figure 1]] To be able to seed our market with the EVEmu docker setup we have to make a few changes to the <code>docker-compose.yml</code> # Locate your root EVEmu directory # Assuming you are on linux run <code>nano docker-compose.yml</code> # You should be presented with something like Figure 1 # There are two changes you need to make here. Change <code>#ports:</code> to be <code>ports:</code>. Do this by removing the # in front of the line # Next remove the # in front of <code>#  - "3306:3306"</code> so that it looks like <code>  - "3306:3306"</code> # <code>Ctrl + O</code> # Click Enter # <code>Ctrl + X</code> # Run your build again by running <code>docker-compose -p evemu up -d</code> # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter <code>evemu</code> # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script # Now with your market successfully seeded we suggest undoing steps 4 and 5 by replacing the comments and rerunning step 9. This makes your database no longer accessible from anywhere protecting it. ==== Source Seeding ==== # Locate your root EVEmu directory # Assuming you already have the mysql client installed run <code>mysql -u evemu -p -h 127.0.0.1 < sql/seed_and_clean/seed_market.sql</code> from the evemu_Crucible folder. # You will be prompted for a password. Enter your evemu users password. # This will take awhile to complete. Once it is done run <code>mysql -u evemu -p -h 127.0.0.1</code> # This will bring you into the mysql client connected to the EVEmu database. # Insert <code>use evemu;</code> # Click Enter # Now run <code>select * from mktOrders LIMIT 10;</code> This command grabs the top 10 entries in the mktOrders table. # If this command returns data you now have a successfully seeded market. ## NOTE: The script that we ran in Step 9 currently only seeds the Derelik Region. If you'd like to seed others please change the <code>regionID</code> variable in the <code>seed_market.sql</code> script == Upgrading == Upgrading EVEmu to the latest build is quite easy. Assuming that you are utilizing Docker # Locate your EVEmu directory. Navigate out of it with <code>cd ..</code> # Run <code>rm -rf evemu_Crucible</code> ## The above is a very dangerous command. The way it is written right now only removes the EVEmu folder. ## This command removes the EVEmu Crucible folder which we will repull from the repository in the next step. Don't worry all of your game data is safe as we store it on Docker Volumes # Now run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code> # Run <code>cd evemu_Crucible</code> # Run <code>docker-compose -p evemu up -d --build</code> # This will completely rebuild the EVEmu server from source and redeploy it. # Upgrade Complete. 748506f17f7dcc42ae143925d13a93d04371259a Development Team 0 10 367 343 2021-04-07T12:05:00Z Allan 3 update status wikitext text/x-wiki == EvEmu Developers == === Current Main Developers === ==== ACTIVE ==== * [Senior Developer] Allan (zhyrohaad) * [Senior Developer] James (jdhirst) ==== INACTIVE ==== * [Senior Developer] Bloody.Rabbit * [Senior Developer] Captnoord (Co-Founder Per Se) * [Senior Developer] Luck * [Senior Developer] Aknor_Jaden * [Assistant Developer] ozatomic * [Assistant Developer] Reve === Part-Time Developers (Patch Stuff Mostly) === * Almamu === Past Developers === * Beast * Zhur (Founder, is MIA) == EvEmu Control Panel Developers (outdated) == === Past Developers === * Hurracane (Founder) 28b681ab178087f63bbe2b8d0614446d342bf5c6 Category:Game Operation 14 149 368 182 2021-04-07T12:40:01Z Allan 3 wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny warping and collisions are not going to be as accurately or exactly calculated as the eve client and official server since we do not have access to their exact math formulas used for these calculations. * All O.R.E. ships with exception of the Rorqual and the Orca have wrecks with typeIDs from '''invTypes''' table in the EVEmu database '''invTypesToWrecks''' table that are specific to Galente-specific wrecks, even though there are similar wrecks for all the other races. At this time, we have no idea why CCP has wrecks for the ORE ships for each race, but we're going to use Galente race wreck types for these ships. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> = <span id="EVEmu_Original_Features" class="mw-headline"> EVEmu Original Features </span> = * [http://wiki.evemu.dev/index.php?title=Category:PCP&action=edit&redlink=1 Player Controlled Players (PCP)] <div lang="en" dir="ltr"> <div id="mw-pages"> 16528e4f98fa3e5dd837e0ce9934b76d27fda8ae 369 368 2021-04-07T12:40:51Z Allan 3 wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny warping and collisions are not going to be as accurately or exactly calculated as the eve client and official server since we do not have access to their exact math formulas used for these calculations. * All O.R.E. ships with exception of the Rorqual and the Orca have wrecks with typeIDs from '''invTypes''' table in the EVEmu database '''invTypesToWrecks''' table that are specific to Galente-specific wrecks, even though there are similar wrecks for all the other races. At this time, we have no idea why CCP has wrecks for the ORE ships for each race, but we're going to use Galente race wreck types for these ships. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> <div lang="en" dir="ltr"> <div id="mw-pages"> cd40b6142ff349fd961baebb2e0c60b919824167 370 369 2021-04-07T12:42:45Z Allan 3 begin updates of this page - w.i.p. wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny - turns, orbit and collisions are not going to be as accurate as the eve client and official server since we do not have access to their formulas used for these calculations. * All O.R.E. ships with exception of the Rorqual and the Orca have wrecks with typeIDs from '''invTypes''' table in the EVEmu database '''invTypesToWrecks''' table that are specific to Galente-specific wrecks, even though there are similar wrecks for all the other races. At this time, we have no idea why CCP has wrecks for the ORE ships for each race, but we're going to use Galente race wreck types for these ships. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> <div lang="en" dir="ltr"> <div id="mw-pages"> 55bad59212b0920a8d55f2c795867b4aba3ecb2c 396 370 2021-04-08T21:09:05Z Allan 3 /* List of Known Deviations from Official CCP EVE Online Operation */ wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny - turns, orbit and collisions are not going to be as accurate as the eve client and official server since we do not have access to their formulas used for these calculations. In fact, collisions are disabled, turns are almost close, and orbit is hacked to high hell. desync is a routine problem once ships turn or orbit. * All O.R.E. ships with exception of the Rorqual and the Orca have wrecks with typeIDs from '''invTypes''' table in the EVEmu database '''invTypesToWrecks''' table that are specific to Galente-specific wrecks, even though there are similar wrecks for all the other races. At this time, we have no idea why CCP has wrecks for the ORE ships for each race, but we're going to use Galente race wreck types for these ships. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> <div lang="en" dir="ltr"> <div id="mw-pages"> 13369bdcab4c26dd6b68c3032375130bb80c0290 397 396 2021-04-08T21:12:38Z Allan 3 /* List of Known Deviations from Official CCP EVE Online Operation */ wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny - turns, orbit and collisions are not going to be as accurate as the eve client and official server since we do not have access to their formulas used for these calculations. In fact, collisions are disabled, turns are almost close, and orbit is hacked to high hell. desync is a routine problem once ships turn or orbit. * All O.R.E. ships have wreck typeIDs for each race. We have no idea why CCP has these wrecks for each race, but we're using Gallente race wreck types for these ships. This could be edited to use pilots race for determining wreck typeID, but is not implemented that way at this time. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> <div lang="en" dir="ltr"> <div id="mw-pages"> cd8025a53d4c0cd1e9f9c1e0359ae7db60b44c3f 398 397 2021-04-08T21:13:12Z Allan 3 /* List of Known Deviations from Official CCP EVE Online Operation */ wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny - turns, orbit and collisions are not going to be as accurate as the eve client and official server since we do not have access to their formulas used for these calculations. In fact, collisions are disabled, turns are almost close, and orbit is hacked to high hell. desync is a routine problem once ships turn or orbit. * All O.R.E. ships have wreck typeIDs for each race. We have no idea why CCP has these wrecks for each race, but we're using Gallente wreck types for these ships. This could be edited to use pilots race for determining wreck typeID, but is not implemented that way at this time. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects&action=edit&redlink=1 Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager.html|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> <div lang="en" dir="ltr"> <div id="mw-pages"> 221a8bb5b823e9bf90a608f5b80b1ab8b3b875c6 402 398 2021-04-08T21:18:58Z Allan 3 /* Essentials */ wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny - turns, orbit and collisions are not going to be as accurate as the eve client and official server since we do not have access to their formulas used for these calculations. In fact, collisions are disabled, turns are almost close, and orbit is hacked to high hell. desync is a routine problem once ships turn or orbit. * All O.R.E. ships have wreck typeIDs for each race. We have no idea why CCP has these wrecks for each race, but we're using Gallente wreck types for these ships. This could be edited to use pilots race for determining wreck typeID, but is not implemented that way at this time. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects|Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> <div lang="en" dir="ltr"> <div id="mw-pages"> 6523059cec009d57b916324392a931779299de40 403 402 2021-04-08T21:19:21Z Allan 3 /* Essentials */ wikitext text/x-wiki This category details the various operations of the EvEmu server along with specific systems that deviate from live.<br> These articles are organized into large functional groups.<br><br> '''work-in-progress'''<br> I am working on updating this page with notes from my code design<br> - Allan = <span id="Disclaimer_and_List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation" class="mw-headline">List of Known Deviations from Official CCP EVE Online Operation </span> = '''KNOWN DEVIATIONS FROM OFFICIAL CCP EVE ONLINE OPERATION''' * Destiny - turns, orbit and collisions are not going to be as accurate as the eve client and official server since we do not have access to their formulas used for these calculations. In fact, collisions are disabled, turns are almost close, and orbit is hacked to high hell. desync is a routine problem once ships turn or orbit. * All O.R.E. ships have wreck typeIDs for each race. We have no idea why CCP has these wrecks for each race, but we're using Gallente wreck types for these ships. This could be edited to use pilots race for determining wreck typeID, but is not implemented that way at this time. = <span id="Essentials" class="mw-headline"> Essentials </span> = * [http://wiki.evemu.dev/index.php?title=Attributes_and_Effects Attributes and Effects] - Basics on what Attributes and Effects are and how they make EVE work * [[Category_Module_Manager|Module Manager]] - Modules and Fittings = <span id="Combat" class="mw-headline"> Combat </span> = * [[Ship_Combat.html|Ship Combat]] * [http://wiki.evemu.dev/index.php?title=Player_Fleets&action=edit&redlink=1 Player Fleets] * [http://wiki.evemu.dev/index.php?title=Drones_and_Fighters&action=edit&redlink=1 Drones and Fighters] * [[Category_NPCs.html|NPCs]] ** [http://wiki.evemu.dev/index.php?title=Belt_NPCs&action=edit&redlink=1 Belt NPCs] ** [http://wiki.evemu.dev/index.php?title=CONCORD&action=edit&redlink=1 CONCORD] ** [http://wiki.evemu.dev/index.php?title=Transport_NPCs&action=edit&redlink=1 Transport NPCs] ** [http://wiki.evemu.dev/index.php?title=Mining_NPCs&action=edit&redlink=1 Mining NPCs] ** [http://wiki.evemu.dev/index.php?title=PVP_NPCs&action=edit&redlink=1 PVP NPCs] ** [http://wiki.evemu.dev/index.php?title=NPC_Incursions&action=edit&redlink=1 NPC Incursions] ** [[NPC_Loot_Drops.html|NPC_Loot_Drops]] ** [http://wiki.evemu.dev/index.php?title=Salvage&action=edit&redlink=1 Salvage] = <span id="Organizations" class="mw-headline"> Organizations </span> = * [http://wiki.evemu.dev/index.php?title=Corporations&action=edit&redlink=1 Corporations] * [http://wiki.evemu.dev/index.php?title=Chat&action=edit&redlink=1 Chat] * [http://wiki.evemu.dev/index.php?title=Trade&action=edit&redlink=1 Trade] * [http://wiki.evemu.dev/index.php?title=Alliances&action=edit&redlink=1 Alliances] <br /> = <span id="Industrial" class="mw-headline"> Industrial </span> = * [http://wiki.evemu.dev/index.php?title=Mining&action=edit&redlink=1 Mining] * [http://wiki.evemu.dev/index.php?title=Research&action=edit&redlink=1 Research] * [http://wiki.evemu.dev/index.php?title=Production&action=edit&redlink=1 Production] <br /> = <span id="Exploration" class="mw-headline"> Exploration </span> = * [http://wiki.evemu.dev/index.php?title=Category:Scanning&action=edit&redlink=1 Scanning] ** [http://wiki.evemu.dev/index.php?title=System_Scanning&action=edit&redlink=1 System Scanning] ** [http://wiki.evemu.dev/index.php?title=Directional_Scanning&action=edit&redlink=1 Directional Scanning] ** [http://wiki.evemu.dev/index.php?title=Scan_Probing&action=edit&redlink=1 Scan Probing] * [http://wiki.evemu.dev/index.php?title=Wormholes&action=edit&redlink=1 Wormholes] <br /> <div lang="en" dir="ltr"> <div id="mw-pages"> f8bfda1bb009f4d83c123968e70445749e726271 Project Plan 0 20 371 39 2021-04-07T12:46:21Z Allan 3 update status wikitext text/x-wiki Our current project/development plan is to work on fixing code bugs and other operational problems.<br> ETA on this is unknown at this time. 13a5d3480d4a0b6db9875e12b968ed4bdd44580a 372 371 2021-04-07T12:51:01Z Allan 3 update status wikitext text/x-wiki All client services and calls have been researched and integrated into the server.<br> There are still a few services that are incomplete, and some calls that are empty.<br> These incomplete items will be worked on as time permits, with no current ETA.<br> <br> Our current project/development plan is to work on fixing bugs and other operational problems as listed on our [https://github.com/EvEmu-Project/evemu_Crucible/issues bug report].<br> ETA for fixing bugs is unknown at this time. 186b0d207b0269d5a75946a24ae5c01d48a0daaa List of Admin and GM Commands 0 18 373 346 2021-04-07T12:55:11Z Allan 3 /* System Commands */ wikitext text/x-wiki === Debug Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |siglist |CONTENT | |lists all active signatures, with location, name, and type. |- |heal |HEALSELF |entityID |heal the character with the entityID |- |healtarget |HEALSELF |entityID |heal the currently active target |- |status |PLAYER | |note giving you detailed ship status information |- |secstatus |PLAYER | |note giving you this character's current security status |- |list |PLAYER | |gives a list of all dynamic entities and players and their destinyState in this bubble |- |commandlist |PLAYER | |gives a list of all game commands, required role, and a description |- |destinyvars |GMH | |shows some current destiny variables |- |shipvars |GMH | |shows other current destiny variables |- |shutdown |GMH | |save all items, kick all connections, and halt server. immediate command. |- |beltlist |PROGRAMMER | |list all roids in current belt's inventory. |- |inventory |PROGRAMMER | |list all items in current location's inventory either station or solsystem). |- |shipinventory |PROGRAMMER | |list all items in current ship's inventory. |- |showsession |PROGRAMMER | |list current session values. |- |skilllist |PROGRAMMER | |list all skills loaded for character. |- |shipdna |PROGRAMMER | |show current ship DNA. |- |targlist |PROGRAMMER | |show current ship target list. |- |bubblelist |PROGRAMMER | |show current objects in bubble, their destiny state, and movement speed. |- |track |PROGRAMMER | |toggles current object movement tracking state. |- |attrlist |PROGRAMMER | |show current attributes for itemID given in args. |- |warpto |GMH | |warp to an object using its itemID. |- |fleetboost |PLAYER | |note giving you detailed fleet boost information |- |fleetinvite |PLAYER | |sets fleet invite scope to <arg> or none |- |getposition |PLAYER | |gets positional data between ship and moon for pos placement testing) |- |bubbletrack |PROGRAMMER | |enable/disable bubble outline tracking. |- |players |PLAYER | |shows list of online players |- |showall |GMH | |shows all dynamic items in system on ship scanner. |- |autostop |PLAYER | |sets repair, boost, and ?? modules to stop when target full |} === GM Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |spawnn |ADMIN |typeID |Spawn an NPC with the specified type. |- |spawn |SPAWN |typeID |Spawn an NPC with the specified type. |- |unspawn |SPAWN |itemID |remove and delete itemID |- |search |VIP |text |Search for items matching the specified query |- |giveisk |GMH |entityID amount |Give the specified amount of cash to the specified character. 'me'=self. |- |pop |ADMIN |type key value |Send an OnRemoteMessage |- |setbpattr |CONTENT |itemID |copy materialLevel productivityLevel licensedProductionRunsRemaining |- |getattr |VIP |itemID attributeID |Retrieves attribute value. |- |setattr |CONTENT |itemID attributeID value |Sets attributeID of itemID to value. |- |fit |VIP |itemID |Fits selected item to active ship. |- |giveallskills |ADMIN |<nowiki>['me'|<characterID>]</nowiki> |gives ALL skills to designated character or self |- |giveskill |VIP |skillID level |gives skillID to specified level. |- |online |VIP |entityID |online all modules on the ship of the entityID. entityID=me=>online my modules |- |unload |VIP |entityID itemID |unload module itemID from entityID itemID=all=>unload all entityID=me=>my modules |- |repairmodules |HEALSELF |entityID itemID |repair the modules of the character with the entityID |- |giveskills |ADMIN |itemID |gives skills to character. |- |dogma |ADMIN |attribute |change item attribute value |- |kick |ADMIN |charName |kicks [charName] from the server |- |ban |ADMIN |charName |bans player's account from the server |- |unban |ADMIN |charName |removes ban on player's account |- |entity |ADMIN |entityID |unknown |- |chatban |ADMIN |characterID |bans character from channel |- |whois |ADMIN |characterName |returns information on character |} === System Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |create |VIP |itemID [count] |Create count or 1 of the specified item. |- |goto |VIP |x y z |Jump to the specified position in space. Stopped. |- |update |PLAYER | |Sets Current Position according to Server's DestinyManager, then Sends Bubble AddBalls and Destiny SetState. (resets spaceview with current server data) |- |createitem |ADMIN |itemID count |Create count or 1 of the specified item.(from Insider) |- |translocate |VIP |entityID |Translocate to the specified entity |- |tr |VIP |who, entityID |Translocate - This is a very powerful command. It will move you and your active ship to another location. |- |halt |VIP | |Immediately stops ship, setting Destiny::State = dstball_halt. |- |location |PLAYER | |Gives you back your current location in space. |- |syncloc |PLAYER | |Synchronizes your location in client with location on server. |- |syncpos |PLAYER | |Synchronizes locations of all dynamic entities in current bubble with location on server for all players in callers bubble. |- |sendstate |CONTENT | |Sends DoDestinyUpdate SetState. |- |addball |PLAYER | |Sends BubbleManager AddBalls. |- |addball2 |PLAYER | |Sends BubbleManager AddBalls2. |- |kill |VIP |entityID |Insta-pops a destroyable ship, drone, structure, if applicable |- |killallnpcs |ADMIN | |Insta-pops all NPC ships in the current bubble |- |cloak |VIP | |instantly and unconditionally toggles cloak state of your vessel |- |sov |CONTENT | |unknown at this time |- |pos |PROGRAMMER | |unknown at this time |- |hop |CONTENT | |unknown at this time |} ==Old Commands (needs to be deleted after merging with above tables== {| |/ban<nowiki> </nowiki> (charName) |bans player's account from the server |- |/chatban (characterID) |bans character from channel |- |/create (itemID) [count] |Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- |/dogma (attribute) |change item attribute value |- |/entity (entityID) |unknown |- |/fit (itemID) |Fits selected item to active ship. |- |/getattr (itemID) (attributeID) |Retrieves attribute value. |- |/giveallskills (characterID) |gives all skills to character |- |/giveisk (entityID) (amount) |Give the specified amount of cash to the specified character. 0=self. |- |/giveskill (itemID) |gives skills to fit item. |- |/giveskills (itemID) |gives skills to character. |- |/goto (x) (y) (z) |Jump to the specified position in space. |- |/heal (entityID) |heal the character with the entityID |- |/kick (charName) |kicks [charName] from the server |- |/location |Gives you back your current location in space. |- |/online (entityID) |online all modules on the ship of the entityID. entityID=me=>online my modules |- |/pop (type) (key) (value) |Send an OnRemoteMessage. |- |/repairmodules (entityID) (itemID) |repair the modules of the character with the entityID |- |/search (text) |Search for items matching the specified query |- |/setattr (itemID) (attributeID) (value) |Sets attributeID of itemID to value. |- |/setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) |Change blueprint's attributes. |- |/spawn (typeID) |Spawn an NPC with the specified type. |- |/state |Sends DoDestinyUpdate SetState. |- |/syncloc |Synchonizes your location in client with location on server. |- |<nowiki>/tr [<entityID>|me] <locationID></nowiki> |Translocate the specified person to the specified entity |- |/translocate <entityID> <locationID> |Translocate the specified person to the specified entity |- |/unload (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unspawn (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unban (charName) |removes ban on player's account |- |/whois (characterName) |returns information on character |} [[Category:User Guide]] dee94c97f03b3fa664dc63c39a0f17b93dce4629 374 373 2021-04-07T12:57:30Z Allan 3 /* System Commands */ wikitext text/x-wiki === Debug Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |siglist |CONTENT | |lists all active signatures, with location, name, and type. |- |heal |HEALSELF |entityID |heal the character with the entityID |- |healtarget |HEALSELF |entityID |heal the currently active target |- |status |PLAYER | |note giving you detailed ship status information |- |secstatus |PLAYER | |note giving you this character's current security status |- |list |PLAYER | |gives a list of all dynamic entities and players and their destinyState in this bubble |- |commandlist |PLAYER | |gives a list of all game commands, required role, and a description |- |destinyvars |GMH | |shows some current destiny variables |- |shipvars |GMH | |shows other current destiny variables |- |shutdown |GMH | |save all items, kick all connections, and halt server. immediate command. |- |beltlist |PROGRAMMER | |list all roids in current belt's inventory. |- |inventory |PROGRAMMER | |list all items in current location's inventory either station or solsystem). |- |shipinventory |PROGRAMMER | |list all items in current ship's inventory. |- |showsession |PROGRAMMER | |list current session values. |- |skilllist |PROGRAMMER | |list all skills loaded for character. |- |shipdna |PROGRAMMER | |show current ship DNA. |- |targlist |PROGRAMMER | |show current ship target list. |- |bubblelist |PROGRAMMER | |show current objects in bubble, their destiny state, and movement speed. |- |track |PROGRAMMER | |toggles current object movement tracking state. |- |attrlist |PROGRAMMER | |show current attributes for itemID given in args. |- |warpto |GMH | |warp to an object using its itemID. |- |fleetboost |PLAYER | |note giving you detailed fleet boost information |- |fleetinvite |PLAYER | |sets fleet invite scope to <arg> or none |- |getposition |PLAYER | |gets positional data between ship and moon for pos placement testing) |- |bubbletrack |PROGRAMMER | |enable/disable bubble outline tracking. |- |players |PLAYER | |shows list of online players |- |showall |GMH | |shows all dynamic items in system on ship scanner. |- |autostop |PLAYER | |sets repair, boost, and ?? modules to stop when target full |} === GM Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |spawnn |ADMIN |typeID |Spawn an NPC with the specified type. |- |spawn |SPAWN |typeID |Spawn an NPC with the specified type. |- |unspawn |SPAWN |itemID |remove and delete itemID |- |search |VIP |text |Search for items matching the specified query |- |giveisk |GMH |entityID amount |Give the specified amount of cash to the specified character. 'me'=self. |- |pop |ADMIN |type key value |Send an OnRemoteMessage |- |setbpattr |CONTENT |itemID |copy materialLevel productivityLevel licensedProductionRunsRemaining |- |getattr |VIP |itemID attributeID |Retrieves attribute value. |- |setattr |CONTENT |itemID attributeID value |Sets attributeID of itemID to value. |- |fit |VIP |itemID |Fits selected item to active ship. |- |giveallskills |ADMIN |<nowiki>['me'|<characterID>]</nowiki> |gives ALL skills to designated character or self |- |giveskill |VIP |skillID level |gives skillID to specified level. |- |online |VIP |entityID |online all modules on the ship of the entityID. entityID=me=>online my modules |- |unload |VIP |entityID itemID |unload module itemID from entityID itemID=all=>unload all entityID=me=>my modules |- |repairmodules |HEALSELF |entityID itemID |repair the modules of the character with the entityID |- |giveskills |ADMIN |itemID |gives skills to character. |- |dogma |ADMIN |attribute |change item attribute value |- |kick |ADMIN |charName |kicks [charName] from the server |- |ban |ADMIN |charName |bans player's account from the server |- |unban |ADMIN |charName |removes ban on player's account |- |entity |ADMIN |entityID |unknown |- |chatban |ADMIN |characterID |bans character from channel |- |whois |ADMIN |characterName |returns information on character |} === System Commands === {| class="wikitable" |'''Command''' |'''Required Role''' |'''Arguments''' |'''Description''' |- |create |VIP |itemID [count] |Create count or 1 of the specified item. |- |goto |VIP |x y z |Jump to the specified position in space. Stopped. |- |update |PLAYER | |Sets Current Position according to Server's DestinyManager, then Sends Bubble AddBalls and Destiny SetState. (resets spaceview with current server data) |- |createitem |ADMIN |itemID count |Create count or 1 of the specified item.(from Insider) |- |translocate |VIP |entityID |Translocate to the specified entity |- |tr |VIP |who, entityID |Translocate - This is a very powerful command. It will move you and your active ship to another location. |- |halt |VIP | |Immediately stops ship, setting Destiny::State = dstball_halt. |- |location |PLAYER | |Gives you back your current location in space. |- |syncloc |PLAYER | |Synchronizes your location in client with location on server. |- |syncpos |PLAYER | |Synchronizes locations of all dynamic entities in current bubble with location on server for all players in callers bubble. |- |sendstate |CONTENT | |Sends DoDestinyUpdate SetState. Use this ONLY when your space view is blank. (blackscreen, distances are .1$, overview has no items) |- |addball |PLAYER | |Sends BubbleManager AddBalls. (need to update role) |- |addball2 |PLAYER | |Sends BubbleManager AddBalls2. (need to update role) |- |kill |VIP |entityID |Insta-pops a destroyable ship, drone, structure, if applicable |- |killallnpcs |ADMIN | |Insta-pops all NPC ships in the current bubble |- |cloak |VIP | |instantly and unconditionally toggles cloak state of your vessel |} ==Old Commands (needs to be deleted after merging with above tables== {| |/ban<nowiki> </nowiki> (charName) |bans player's account from the server |- |/chatban (characterID) |bans character from channel |- |/create (itemID) [count] |Create count or 1 of the specified item. Used in-station puts items in Item/Ship windows, used in space puts items/ships into your ship's cargo bay. |- |/dogma (attribute) |change item attribute value |- |/entity (entityID) |unknown |- |/fit (itemID) |Fits selected item to active ship. |- |/getattr (itemID) (attributeID) |Retrieves attribute value. |- |/giveallskills (characterID) |gives all skills to character |- |/giveisk (entityID) (amount) |Give the specified amount of cash to the specified character. 0=self. |- |/giveskill (itemID) |gives skills to fit item. |- |/giveskills (itemID) |gives skills to character. |- |/goto (x) (y) (z) |Jump to the specified position in space. |- |/heal (entityID) |heal the character with the entityID |- |/kick (charName) |kicks [charName] from the server |- |/location |Gives you back your current location in space. |- |/online (entityID) |online all modules on the ship of the entityID. entityID=me=>online my modules |- |/pop (type) (key) (value) |Send an OnRemoteMessage. |- |/repairmodules (entityID) (itemID) |repair the modules of the character with the entityID |- |/search (text) |Search for items matching the specified query |- |/setattr (itemID) (attributeID) (value) |Sets attributeID of itemID to value. |- |/setbpattr (itemID) (copy) (materialLevel) (productivityLevel) (licensedProductionRunsRemaining) |Change blueprint's attributes. |- |/spawn (typeID) |Spawn an NPC with the specified type. |- |/state |Sends DoDestinyUpdate SetState. |- |/syncloc |Synchonizes your location in client with location on server. |- |<nowiki>/tr [<entityID>|me] <locationID></nowiki> |Translocate the specified person to the specified entity |- |/translocate <entityID> <locationID> |Translocate the specified person to the specified entity |- |/unload (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unspawn (entityID) (itemID) |unload module itemID from entityID (itemID=all=>unload all) (entityID=me=>my <nowiki> </nowiki> modules) |- |/unban (charName) |removes ban on player's account |- |/whois (characterName) |returns information on character |} [[Category:User Guide]] ad146141ffb19185899c2c73c70b0ff9f486be07 Main Page/EVEmu Documentation Links 0 16 375 31 2021-04-07T13:06:16Z Allan 3 update status wikitext text/x-wiki '''Use these links if you want to learn how game features are implemented on EVEmu's server and learn about the backend framework that the server needs to do its job:''' * [[:Category:Users Guide|User's Guide]] * [[:Category:Game Operation|Game Operation]] (update in progress) * [[:Category:EVE Database|EVE Database]] (needs update) * [[:Category:EVEmu API Server|EVEmu API Server]] (needs update) * 692005bd6e53a764209b822b5416421b71e94fd1 376 375 2021-04-07T13:07:31Z Allan 3 update status wikitext text/x-wiki '''Use these links if you want to learn how game features are implemented on EVEmu's server and learn about the backend framework that the server needs to do its job:''' * [[:Category:Users Guide|User's Guide]] * [[:Category:Game Operation|Game Operation]] (update in progress) * [[:Category:EVE Database|EVE Database]] (needs update) * [[:Category:EVEmu API Server|EVEmu API Server]] * ba6be1db3c0df37cac52a1bcba4bc35e3c99dbe6 Category:EVE Database 14 148 377 179 2021-04-07T13:09:15Z Allan 3 update status wikitext text/x-wiki == NOTICE: == This page needs to be updated for version 0.8.0 and above. = <span id="The_EVE_Database" class="mw-headline"> The EVE Database </span> = EVE needs a database running behind the scenes on the server to maintain and use all information needed for gameplay. CCP uses MSSQL to run their database but it is not free so EVEmu uses MySQL. Fortunately for us, many out of game tools use MySQL too so there are publicly available MySQL conversions of the CCP Static Data Dump that is released in MSSQL format. We primarily get these MySQL conversions from the [http://wiki.eve-id.net/CCP_Toolkit_Release_History EVE Developer Network - Static Data Dump History page]. Instructions on how to build the database can be found on our [[Build_Database.html|Build_Database]] page. = <span id="EVEmu_Database_Tools" class="mw-headline"> EVEmu Database Tools </span> = The EVEmu Database is quite extensive and difficult to navigate or work with, so the EVEmu team has developed some tools to use that make this job easier. There was a [[EVEmu_Control_Panel.html|EVEmu_Control_Panel]] created to help make seeding the market, editing/deleting/adding in-game item types, creating/editing/deleting characters and accounts, etc adding asteroid fields and other features more convenient for developers wishing to populate their universe. = <span id="EVEmu_Database_Layout" class="mw-headline"> EVEmu Database Layout </span> = <div class="floatright"> [[File_Dbo_001.html|[[File:../images/thumb/7/72/Dbo_001.png/360px-Dbo_001.png|360x292px|Dbo 001.png]]]] </div> The Eve Online Database is extremely large and complex. The following is a visual representation of the public data CCP has released. This is based from an older version of the database and no longer applies to modern iterations. The EVEmu Database has more tables and more relationships than displayed here. Download the relationships here: [[File_Dbo_002.html|File:Dbo 002.pdf]] <br /> == <span id="Ideas_for_the_Future" class="mw-headline"> Ideas for the Future </span> == * It would speed up DB queries quite a bit if we split the '''entity''' and '''entity_attributes''' tables into multiple pairs for each major object type in the game. For example, we could have a pair of these tables that only holds ships and drones called '''entity_ships''' and '''entity_ships_attributes'''. Another pair could exist for just POS structures called '''entity_structures''' and '''entity_structures_attributes'''. Here is a comprehensive, although probably incomplete, list of the different groups requiring their own pair of these two tables: ** Characters and Clones ** Ships and Drones ** Modules and Charges ** Asteroids ** Celestial objects ** Structures ** Deployables ** Cargo Containers ** Stations (player and NPC) ** Corp items === <span id="Possible_Structure_layout" class="mw-headline"> Possible Structure layout </span> === '''entity_ships''' '''entity_ship_attributes''' * Ships 6 * Drones 18 <br /> '''entity_items''' '''entity_items_attributes''' * material 4 * blueprint 9 * ancient relics 34 * reaction 24 * commodity 17 <br /> '''entity_modules''' '''entity_modules_attributes''' * module 7 * charges 8 * subsystem 32 * decrypters 35 <br /> '''entity_structure''' '''entity_structure_attributes''' * structure 23 * deployable 22 * station 3 The addition of a table for redeemable items. Items that are 'gifted' to players that may be allocated to a character prior to character selection (but may also be done in game) Fields may include (but not limited to) AccountID, typeID, Quantity, Timegiven, TimeStop AccountID - The account with the item(s) in question typeID - the typeID of the item Quantity - The quantity avaliable Timegiven - The time the item(s) were given to the player TimeElapse- The time the item(s) will be removed from redemption. <br /> '''TODO: Describe each table that is added by EVEmu, its fields and what it's used for''' * accountApi * dgmEffectsInfo * dgmEffectsActions * dgmShipBonusModifiers * dgmSkillBonusModifiers * dgmImplantBonusModifiers <br /> = <span id="EVEmu_Database_Tables" class="mw-headline"> EVEmu Database Tables </span> = This page would be huge if all tables were listed and their details of purpose, use, and fields were explained on this page, so for now, only the most important tables critical for server operations will be explained here. == <span id="Important_Interesting_Tables" class="mw-headline"> Important Interesting Tables </span> == * account - this table lists each account (not characters, see the '''entity''' table below), their user id and password (encrypted) * character_ - this table lists each character in the game, their wallet balance, the account that owns them, bounty, sec. status, corp ID, all roles info, and the character's toon creation data (hair, clothes, eyes, morph, etc.) * chrskillqueue - this table stores all characters' skill queue contents; there are fields that indicate skill type and order in the queue as well as the character ID that owns that skill queue entry * chrstandings - this table stores standings from characters to other characters * crpcharshares - this table stores the amount of corporation shares that each character owns in their respective corporation(s) * entity - this table lists all npc and real characters and their location. more importantly, it lists ALL characters' asset items everywhere in the game, their location, owner, quantities, and a few flags * entity_attributes - this table lists attributes of characters, i.e. charisma (id=164), intelligence (id=165), memory (id=166), perception (id=167), will power (id=168) * evemail - this table lists every evemail sent/received in-game, every detail is contained here except the contents of the message, that is stored in the '''evemaildetails''' table * evemaildetails - this table lists every evemail's message contents, the rest of the details of each evemail are stored in the '''evemail''' table * market_journal - this table contains all the data that is shown in the player's Journal tab of the Wallet (player and npc transactions) * market_orders - this table contains all the orders that the players have made inside the eve universe * market_transactions - this table contains all the transaction data that players make inside the eve market (player transactions) * npcstandings - this table stores standings from npc's to characters * roiddistribution - this table hold the asteroid belt makeup data, specifically what roids are to be spawn and in what frequency * spawnbounds - * spawngroupentities - * spawngroups - * spawns - = <span id="Complete_Table_Listing" class="mw-headline"> Complete Table Listing </span> = '''Please keep the same format if you edit this page''' {| | Table Field Name 1 | Table Field Name 2 | Table Field Name 3 |- | Field 1 Description | Field 2 Description | Field 3 Description |- | Link to Table | Links to Table | Links to Table |} * Note, not all fields will link to another table. <br /> == <span id="Accounts" class="mw-headline"> [[Accounts.html|Accounts]] </span> == This is a simple table. It holds you account information. || '''accountID''' || '''accountName''' || '''password''' || '''role''' || '''online''' || || this ties a number to your account, NO two accounts have the same number || this is the name you choose for your account, ie the login name || this is your password, it shows up encrypted in the database || this is the role of the account, ex: Admin, GM, normal Player. || simple, 0 means you are not online, 1 means you are online || <br /> [[EVEmu_Account_Roles.html|See here for details on how the role field is calculated]] == <span id="Accountid" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Accountid&action=edit&redlink=1 Accountid] </span> == This ties a number to your account, No 2 accounts have the same number. || '''accountName''' || '''Password''' || '''Role''' || '''Online''' || ||This is the name you choose for your account || This is your password, it shows up encrypted in the database. || This is the role of the account, ex: Admin, GM, normal Player. A number represents them. 2 = Normal Player 4294967231 = Super admin || Simple, 0 means you are not online, 1 means you are online. || <br /> == <span id="Agtagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtagents&action=edit&redlink=1 Agtagents] </span> == This has basic information about agents. <br /> || '''agentID''' || '''divisionID''' || '''corporationID''' || '''level''' || '''quality''' || '''agentTypeID''' || || Numerical Id for the agent || This is what division the agent works for, IE: Security, R%D... || Numerical ID for the corporation the agent is for || Pretty simple, Level of the agent || Quality of the agent || Type of agent you are dealing with, See agtagenttypes table for more info || == <span id="agtagenttypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtagenttypes&action=edit&redlink=1 agtagenttypes] </span> == This has basic structure for the types of agents. == <span id="agenttypeId" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=AgenttypeId&action=edit&redlink=1 agenttypeId] </span> == Numberical value id, this is referenced with next table agentType agentType - This is what each agent is, look below at table I have created, it is pretty self explanatory. || '''agentTypeID''' || '''agentType''' || || 1 || Nonagent || || 2 || Basicagent || || 3 || Tutorialagent || || 4 || Researchagent || || 5 || CONCORDagent || || 6 || Genericstorylinesissionagent || || 7 || Storylinemissionagent || || 8 || Eventmissionagent || || 9 || Factionalwarfareagent || || 10 || Epicarcagent || == <span id="Agtconfig" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtconfig&action=edit&redlink=1 Agtconfig] </span> == Refers agentId to level and quality == <span id="Agtmissiongroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtmissiongroups&action=edit&redlink=1 Agtmissiongroups] </span> == || '''corporationID''' || '''divisionID''' || '''level''' || '''= missionID''' || <br /> == <span id="agentmissions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agentmissions&action=edit&redlink=1 agentmissions] </span> == || '''missionID''' || '''missionName''' || '''missionLevel''' || '''missionTypeId''' || '''importantMission''' || <br /> == <span id="agtmissiontypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtmissiontypes&action=edit&redlink=1 agtmissiontypes] </span> == || '''missionTypeID''' || '''missionTypeName''' || <br /> == <span id="Agtoffergroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtoffergroups&action=edit&redlink=1 Agtoffergroups] </span> == || '''corporationID''' || '''divisionID''' || '''level''' || '''offered''' || == <span id="agtofferrequired" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtofferrequired&action=edit&redlink=1 agtofferrequired] </span> == || '''offerID''' || '''typeID''' || '''quantity''' || == <span id="agtofferreward" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtofferreward&action=edit&redlink=1 agtofferreward] </span> == || '''offerID''' || '''typeID''' || '''quantity''' || == <span id="agtoffers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtoffers&action=edit&redlink=1 agtoffers] </span> == || '''offerID''' || '''offerName''' || '''offerLevel''' || '''loyaltyPoints''' || '''requiredISK''' || '''rewardISK''' || '''offerText''' || '''offerAcceptedText''' || == <span id="agtresearchagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Agtresearchagents&action=edit&redlink=1 agtresearchagents] </span> == || '''agentID''' || '''typeID''' || == <span id="alliance_shortnames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Alliance_shortnames&action=edit&redlink=1 alliance_shortnames] </span> == == <span id="billspayable" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billspayable&action=edit&redlink=1 billspayable] </span> == || '''billID''' || '''billTypeId''' || '''debtorID''' || '''creditorID''' || '''amount''' || '''dueDateTime''' || '''interest''' || '''externalID''' || '''paid''' || '''externalID2''' || <br /> == <span id="billsreceivable" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billsreceivable&action=edit&redlink=1 billsreceivable] </span> == || '''billID''' || '''billTypeId''' || '''debtorID''' || '''creditorID''' || '''amount''' || '''dueDateTime''' || '''interest''' || '''externalID''' || '''paid''' || '''externalID2''' || == <span id="billtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Billtypes&action=edit&redlink=1 billtypes] </span> == Simple, Links billtypeID to billTypeName , Number value to a Name || '''billTypeID''' || '''billTypeName''' || || 1 || Market Fine || || 2 || Rental Bill || || 3 || Broker Bill || || 4 || War Bill || || 5 || Alliance maintenance Bill || <br /> == <span id="Bloodlinetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Bloodlinetypes&action=edit&redlink=1 Bloodlinetypes] </span> == links bloodlineID to TypeID == <span id="Bookmarks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Bookmarks&action=edit&redlink=1 Bookmarks] </span> == this is where bookmarks in space should be created. <br /> == <span id="cachelocations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Cachelocations&action=edit&redlink=1 cachelocations] </span> == == <span id="cacheowners" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Cacheowners&action=edit&redlink=1 cacheowners] </span> == == <span id="channelchars" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channelchars&action=edit&redlink=1 channelchars] </span> == == <span id="channelmods" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channelmods&action=edit&redlink=1 channelmods] </span> == == <span id="channels" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channels&action=edit&redlink=1 channels] </span> == == <span id="channeltypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Channeltypes&action=edit&redlink=1 channeltypes] </span> == == <span id="character" class="mw-headline"> [[Character.html|character_]] </span> == == <span id="characterstatic" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Characterstatic&action=edit&redlink=1 characterstatic] </span> == == <span id="chraccessories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chraccessories&action=edit&redlink=1 chraccessories] </span> == == <span id="chrancestries" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrancestries&action=edit&redlink=1 chrancestries] </span> == || '''ancestryID''' || '''ancestryName''' || '''bloodlineID''' || '''description''' || '''perception''' || willpower '''||''' charisma '''||''' memory '''||''' intelligence '''||''' graphicID '''||''' shortDescription '''||''' || Unique ID of ancestry, Should be primary Key || Name of ancestry || Bloodline in which ancestry belongs to. || Description of the Ancestry || Atrribute bonus for the ancestry - Perception || Atrribute bonus for the ancestry - Willpower || Atrribute bonus for the ancestry - Charisma || Atrribute bonus for the ancestry - Memory || Atrribute bonus for the ancestry - Intelligence || Icon for this ancestry || Short Description of ancestry || <br /> == <span id="chrapplications" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrapplications&action=edit&redlink=1 chrapplications] </span> == == <span id="chrattributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrattributes&action=edit&redlink=1 chrattributes] </span> == The attributeID's for the characters attributes. == <span id="chrbackgrounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbackgrounds&action=edit&redlink=1 chrbackgrounds] </span> == == <span id="chrbeards" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbeards&action=edit&redlink=1 chrbeards] </span> == == <span id="chrblaccessories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblaccessories&action=edit&redlink=1 chrblaccessories] </span> == == <span id="chrblbackgrounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblbackgrounds&action=edit&redlink=1 chrblbackgrounds] </span> == == <span id="chrblbeards" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblbeards&action=edit&redlink=1 chrblbeards] </span> == == <span id="chrblcostumes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblcostumes&action=edit&redlink=1 chrblcostumes] </span> == == <span id="chrbldecos" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbldecos&action=edit&redlink=1 chrbldecos] </span> == == <span id="chrbleyebrows" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbleyebrows&action=edit&redlink=1 chrbleyebrows] </span> == == <span id="chrbleyes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbleyes&action=edit&redlink=1 chrbleyes] </span> == == <span id="chrblhairs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblhairs&action=edit&redlink=1 chrblhairs] </span> == == <span id="chrbllights" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbllights&action=edit&redlink=1 chrbllights] </span> == == <span id="chrbllipsticks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbllipsticks&action=edit&redlink=1 chrbllipsticks] </span> == == <span id="chrblmakeups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblmakeups&action=edit&redlink=1 chrblmakeups] </span> == == <span id="chrbloodlines" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrbloodlines&action=edit&redlink=1 chrbloodlines] </span> == == <span id="chrblskins" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrblskins&action=edit&redlink=1 chrblskins] </span> == == <span id="chrcareers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcareers&action=edit&redlink=1 chrcareers] </span> == == <span id="chrcareerspecialities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcareerspecialities&action=edit&redlink=1 chrcareerspecialities] </span> == == <span id="chrcostumes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrcostumes&action=edit&redlink=1 chrcostumes] </span> == == <span id="chrdecos" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrdecos&action=edit&redlink=1 chrdecos] </span> == == <span id="chrdepartments" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrdepartments&action=edit&redlink=1 chrdepartments] </span> == == <span id="chremployment" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chremployment&action=edit&redlink=1 chremployment] </span> == == <span id="chreyebrows" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chreyebrows&action=edit&redlink=1 chreyebrows] </span> == == <span id="chreyes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chreyes&action=edit&redlink=1 chreyes] </span> == == <span id="chrfactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrfactions&action=edit&redlink=1 chrfactions] </span> == == <span id="chrhairs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrhairs&action=edit&redlink=1 chrhairs] </span> == == <span id="chrlights" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrlights&action=edit&redlink=1 chrlights] </span> == == <span id="chrlipsticks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrlipsticks&action=edit&redlink=1 chrlipsticks] </span> == == <span id="chrmakeups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrmakeups&action=edit&redlink=1 chrmakeups] </span> == == <span id="chrmissionstate" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrmissionstate&action=edit&redlink=1 chrmissionstate] </span> == == <span id="chrnotes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrnotes&action=edit&redlink=1 chrnotes] </span> == == <span id="chrnpcstandings" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrnpcstandings&action=edit&redlink=1 chrnpcstandings] </span> == == <span id="chroffers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chroffers&action=edit&redlink=1 chroffers] </span> == == <span id="chrownernote" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrownernote&action=edit&redlink=1 chrownernote] </span> == == <span id="chrraces" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrraces&action=edit&redlink=1 chrraces] </span> == == <span id="chrraceskills" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrraceskills&action=edit&redlink=1 chrraceskills] </span> == == <span id="chrschoolagents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrschoolagents&action=edit&redlink=1 chrschoolagents] </span> == == <span id="chrschools" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrschools&action=edit&redlink=1 chrschools] </span> == List of starting schools for new characters. == <span id="chrskillqueue" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrskillqueue&action=edit&redlink=1 chrskillqueue] </span> == == <span id="chrskins" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Chrskins&action=edit&redlink=1 chrskins] </span> == == <span id="chrstandings" class="mw-headline"> [[Chrstandings.html|chrstandings]] </span> == This is the relationship between the player and the NPC. == <span id="corporation" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation] </span> == Lists corporations and basic information. == <span id="corporationstatic" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Corporationstatic&action=edit&redlink=1 corporationstatic] </span> == == <span id="couriermissions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Couriermissions&action=edit&redlink=1 couriermissions] </span> == == <span id="crpactivities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpactivities&action=edit&redlink=1 crpactivities] </span> == == <span id="crpcharshares" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpcharshares&action=edit&redlink=1 crpcharshares] </span> == == <span id="crpnpccorporationdivisions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationdivisions&action=edit&redlink=1 crpnpccorporationdivisions] </span> == == <span id="crpnpccorporationresearchfields" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationresearchfields&action=edit&redlink=1 crpnpccorporationresearchfields] </span> == == <span id="crpnpccorporations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporations&action=edit&redlink=1 crpnpccorporations] </span> == == <span id="crpnpccorporationtrades" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpccorporationtrades&action=edit&redlink=1 crpnpccorporationtrades] </span> == == <span id="crpnpcdivisions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpcdivisions&action=edit&redlink=1 crpnpcdivisions] </span> == == <span id="crpnpctickernames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpnpctickernames&action=edit&redlink=1 crpnpctickernames] </span> == == <span id="crpoffices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crpoffices&action=edit&redlink=1 crpoffices] </span> == == <span id="crtcategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtcategories&action=edit&redlink=1 crtcategories] </span> == || '''categoryID''' || '''description''' || '''catagoryName''' || || Unique ID of this catagory || Description of the catagory || Name of the catagory || <br /> == <span id="crtcertificates" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtcertificates&action=edit&redlink=1 crtcertificates] </span> == List of all certificates || '''certificateID''' || '''catagoryID''' || '''classID''' || '''grade''' || '''corpID''' || '''iconID''' || '''description''' || || Unique ID of the certificate. Should be primary Key || Catagory of the Certificate || Class of the certificate || Grade of the certificate. 1=basic, 2=standard, 3=improved, 5=elite, They cant count, they forgot 4. || Corporation of the certificate || Icon of the certificate || Description of the Certificate || || || crtCatergories.categoryID || crtClasses.classID || || crpNPCCorporations.corporationID || || || <br /> == <span id="crtclasses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtclasses&action=edit&redlink=1 crtclasses] </span> == || '''classID''' || '''description''' || '''className''' || || Unique ID of the class, should be primary key || Description of the class. || Name of the Class. || <br /> == <span id="crtrecommendations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtrecommendations&action=edit&redlink=1 crtrecommendations] </span> == || '''recommendationID''' || '''shipTypeID''' || '''certificateID''' || '''recommendationLevel''' || || Unique ID of recommendation, Should be primary key || typeID of ship || CertificateID of recommendation. || || || || invTypes.typeID || crtCertificates.certificateID || || <br /> == <span id="crtrelationships" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Crtrelationships&action=edit&redlink=1 crtrelationships] </span> == || '''relationshipID''' || '''parentID''' || '''parentTypeID''' || '''parentLevel''' || '''childID''' || || Unique ID of the relationship, Should be primary Key || CertificateID of the certificate || Links to skill in item table || Name of the class || CertificateID of certificates requiring the certificate || || || crtCertificates.certificateID || invTypes.typeID || || crtCertificates.certificateID || <br /> == <span id="dgmattributecategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmattributecategories&action=edit&redlink=1 dgmattributecategories] </span> == == <span id="dgmattributetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmattributetypes&action=edit&redlink=1 dgmattributetypes] </span> == == <span id="dgmeffects" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmeffects&action=edit&redlink=1 dgmeffects] </span> == == <span id="dgmEffectsInfo" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmEffectsInfo&action=edit&redlink=1 dgmEffectsInfo] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmEffectsInfo table Fields ! effectID ! targetAttributeID ! sourceAttributeID ! calculationTypeID ! reverseCalculationTypeID |} == <span id="dgmEffectsActions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmEffectsActions&action=edit&redlink=1 dgmEffectsActions] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmEffectsActions table Fields ! effectID ! effectAppliedInState ! effectAppliedTo ! effectApplicationType ! targetEquipmentType ! targetGroupIDs ! stackingPenaltyApplied ! nullifyOnlineEffect ! nullifiedOnlineEffectID |} == <span id="dgmShipBonusModifiers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmShipBonusModifiers&action=edit&redlink=1 dgmShipBonusModifiers] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmShipBonusModifiers table Fields ! effectID ! attributeSkillID ! attributeSkillLevel ! sourceAttributeID ! targetAttributeID ! calculationTypeID ! reverseCalculationTypeID ! effectAppliedTo ! targetEquipmentType ! targetGroupIDs |} Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Type_Attribute_Modifiers|Type Attribute Modifiers Processing]]. <br /> == <span id="dgmSkillBonusModifiers" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=DgmSkillBonusModifiers&action=edit&redlink=1 dgmSkillBonusModifiers] </span> == Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Effects|Effects Processing]]. {| |+ dgmSkillBonusModifiers table Fields ! effectID ! sourceAttributeID ! targetAttributeID ! calculationTypeID ! reverseCalculationTypeID ! effectAppliedTo ! targetEquipmentType ! targetGroupIDs |} Used with the [[Category_Module_Manager.html|Module Manager]] in its [[Category_Module_Manager.html#Implementing_Type_Attribute_Modifiers|Type Attribute Modifiers Processing]]. == <span id="dgmtypeattributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmtypeattributes&action=edit&redlink=1 dgmtypeattributes] </span> == == <span id="dgmtypeeffects" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dgmtypeeffects&action=edit&redlink=1 dgmtypeeffects] </span> == == <span id="dronestate" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Dronestate&action=edit&redlink=1 dronestate] </span> == == <span id="entity" class="mw-headline"> [[Entity.html|entity]] </span> == This details each individual thing in the game. From individual stack of items to planets to ships and npcs to attached modules and ammo. Characters and implants. It is all listed here. Refers to the [[Invtypes.html|invtypes]], [[Stastations.html|stastations]], [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] and [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] tables. == <span id="entity_attributes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Entity_attributes&action=edit&redlink=1 entity_attributes] </span> == == <span id="eveconstants" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Eveconstants&action=edit&redlink=1 eveconstants] </span> == == <span id="evegraphics" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evegraphics&action=edit&redlink=1 evegraphics] </span> == == <span id="evemail" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemail&action=edit&redlink=1 evemail] </span> == == <span id="evemaildetails" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemaildetails&action=edit&redlink=1 evemaildetails] </span> == == <span id="evemailmimetype" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemailmimetype&action=edit&redlink=1 evemailmimetype] </span> == == <span id="evemessages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evemessages&action=edit&redlink=1 evemessages] </span> == == <span id="evenames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evenames&action=edit&redlink=1 evenames] </span> == == <span id="everoles" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Everoles&action=edit&redlink=1 everoles] </span> == == <span id="evestaticlocations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evestaticlocations&action=edit&redlink=1 evestaticlocations] </span> == == <span id="evestaticowners" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Evestaticowners&action=edit&redlink=1 evestaticowners] </span> == == <span id="eveunits" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Eveunits&action=edit&redlink=1 eveunits] </span> == == <span id="factionraces" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Factionraces&action=edit&redlink=1 factionraces] </span> == == <span id="intro" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Intro&action=edit&redlink=1 intro] </span> == == <span id="invblueprints" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invblueprints&action=edit&redlink=1 invblueprints] </span> == == <span id="invblueprinttypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invblueprinttypes&action=edit&redlink=1 invblueprinttypes] </span> == == <span id="invcategories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcategories&action=edit&redlink=1 invcategories] </span> == == <span id="invcontrabandtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontrabandtypes&action=edit&redlink=1 invcontrabandtypes] </span> == == <span id="invcontroltowerresourcepurposes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontroltowerresourcepurposes&action=edit&redlink=1 invcontroltowerresourcepurposes] </span> == == <span id="invcontroltowerresources" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invcontroltowerresources&action=edit&redlink=1 invcontroltowerresources] </span> == == <span id="invflags" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] </span> == == <span id="invgroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invgroups&action=edit&redlink=1 invgroups] </span> == == <span id="invmarketgroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmarketgroups&action=edit&redlink=1 invmarketgroups] </span> == == <span id="invmetagroups" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmetagroups&action=edit&redlink=1 invmetagroups] </span> == == <span id="invmetatypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invmetatypes&action=edit&redlink=1 invmetatypes] </span> == == <span id="invtypematerials" class="mw-headline"> [[Invtypematerials.html|invtypematerials]] </span> == Details the refining/reprocessing/manufacturing of items. Refers to the [[Invtypes.html|invtypes]] table. == <span id="invshiptypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invshiptypes&action=edit&redlink=1 invshiptypes] </span> == == <span id="invtypereactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invtypereactions&action=edit&redlink=1 invtypereactions] </span> == == <span id="invtypes" class="mw-headline"> [[Invtypes.html|invtypes]] </span> == Details basic information about game items, ships and other objects. Several tables refer to here. If you are interested in making new modules or ships you should start here. == <span id="invtypestowrecks" class="mw-headline"> [[Invtypestowrecks.html|invtypestowrecks]] </span> == Links the destroyed ships or structures to wrecks. It only refers to [[Invtypes.html|invtypes]]. == <span id="invuniquenames" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Invuniquenames&action=edit&redlink=1 invuniquenames] </span> == == <span id="languages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Languages&action=edit&redlink=1 languages] </span> == Languages used in EVE == <span id="liveupdates" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Liveupdates&action=edit&redlink=1 liveupdates] </span> == == <span id="locationscenes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Locationscenes&action=edit&redlink=1 locationscenes] </span> == == <span id="lprequireditems" class="mw-headline"> [[Lprequireditems.html|lprequireditems]] </span> == The items required to purchase (if applicable) at the LP Store. It has relationships to [[Invtypes.html|invtypes]] and [[Lpstore.html|lpstore]]. == <span id="lpstore" class="mw-headline"> [[Lpstore.html|lpstore]] </span> == What itemTypes appear listed in the store and where. It has relationships to [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [[Invtypes.html|invtypes]] and [[Lprequireditems.html|Lprequireditems]]. == <span id="lpverified" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Lpverified&action=edit&redlink=1 lpverified] </span> == Checks for the LPstore == <span id="maillabel" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maillabel&action=edit&redlink=1 maillabel] </span> == == <span id="mailmessage" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mailmessage&action=edit&redlink=1 mailmessage] </span> == == <span id="mapcelestialstatistics" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapcelestialstatistics&action=edit&redlink=1 mapcelestialstatistics] </span> == == <span id="mapconstellationjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapconstellationjumps&action=edit&redlink=1 mapconstellationjumps] </span> == == <span id="mapconstellations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapconstellations&action=edit&redlink=1 mapconstellations] </span> == == <span id="mapdenormalize" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapdenormalize&action=edit&redlink=1 mapdenormalize] </span> == == <span id="mapjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapjumps&action=edit&redlink=1 mapjumps] </span> == == <span id="maplandmarks" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maplandmarks&action=edit&redlink=1 maplandmarks] </span> == == <span id="maplocationwormholeclasses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Maplocationwormholeclasses&action=edit&redlink=1 maplocationwormholeclasses] </span> == == <span id="mapregionjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapregionjumps&action=edit&redlink=1 mapregionjumps] </span> == == <span id="mapregions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] </span> == == <span id="mapsolarsystemjumps" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapsolarsystemjumps&action=edit&redlink=1 mapsolarsystemjumps] </span> == == <span id="mapsolarsystems" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems] </span> == == <span id="mapuniverse" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Mapuniverse&action=edit&redlink=1 mapuniverse] </span> == == <span id="market_history_old" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_history_old&action=edit&redlink=1 market_history_old] </span> == == <span id="market_journal" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_journal&action=edit&redlink=1 market_journal] </span> == == <span id="market_keymap" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_keymap&action=edit&redlink=1 market_keymap] </span> == == <span id="market_orders" class="mw-headline"> [[Market_orders.html|market_orders]] </span> == This table is used to display market orders. It has relationships to [[Invtypes.html|invtypes]], [[Character.html|character_]], [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions], [[Stastations.html|stastations]] and [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems]. == <span id="market_reftypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_reftypes&action=edit&redlink=1 market_reftypes] </span> == == <span id="market_transactions" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Market_transactions&action=edit&redlink=1 market_transactions] </span> == == <span id="npcstandings" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Npcstandings&action=edit&redlink=1 npcstandings] </span> == == <span id="ramactivities" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramactivities&action=edit&redlink=1 ramactivities] </span> == == <span id="ramassemblylines" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylines&action=edit&redlink=1 ramassemblylines] </span> == == <span id="ramassemblylinestationcostlogs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinestationcostlogs&action=edit&redlink=1 ramassemblylinestationcostlogs] </span> == == <span id="ramassemblylinestations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinestations&action=edit&redlink=1 ramassemblylinestations] </span> == == <span id="ramassemblylinetypedetailpercategory" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypedetailpercategory&action=edit&redlink=1 ramassemblylinetypedetailpercategory] </span> == == <span id="ramassemblylinetypedetailpergroup" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypedetailpergroup&action=edit&redlink=1 ramassemblylinetypedetailpergroup] </span> == == <span id="ramassemblylinetypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramassemblylinetypes&action=edit&redlink=1 ramassemblylinetypes] </span> == == <span id="ramcompletedstatuses" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramcompletedstatuses&action=edit&redlink=1 ramcompletedstatuses] </span> == == <span id="raminstallationtypedefaultcontents" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Raminstallationtypedefaultcontents&action=edit&redlink=1 raminstallationtypedefaultcontents] </span> == == <span id="ramjobs" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Ramjobs&action=edit&redlink=1 ramjobs] </span> == == <span id="rentalinfo" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Rentalinfo&action=edit&redlink=1 rentalinfo] </span> == == <span id="roiddistribution" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Roiddistribution&action=edit&redlink=1 roiddistribution] </span> == == <span id="spawnbounds" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Spawnbounds&action=edit&redlink=1 spawnbounds] </span> == == <span id="spawngroupentries" class="mw-headline"> [[Spawngroupentries.html|spawngroupentries]] </span> == Table that controls the chance to spawn a particular NPC for a corporation. Links to [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [[Invtypes.html|invtypes]], [[Spawngroupentries.html|spawngroupentries]] and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. == <span id="spawngroups" class="mw-headline"> [[Spawngroups.html|spawngroups]] </span> == Links individual spawns together. Links to [[Spawngroupentries.html|spawngroupentries]] and [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns]. == <span id="spawns" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Spawns&action=edit&redlink=1 spawns] </span> == == <span id="srvstatus" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Srvstatus&action=edit&redlink=1 srvstatus] </span> == == <span id="staoperations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staoperations&action=edit&redlink=1 staoperations] </span> == == <span id="staoperationservices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staoperationservices&action=edit&redlink=1 staoperationservices] </span> == == <span id="staservices" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Staservices&action=edit&redlink=1 staservices] </span> == == <span id="stastations" class="mw-headline"> [[Stastations.html|stastations]] </span> == Station information. Refers to the [http://wiki.evemu.dev/index.php?title=Corporation&action=edit&redlink=1 corporation], [http://wiki.evemu.dev/index.php?title=Stastationtypes&action=edit&redlink=1 stastationtypes], [http://wiki.evemu.dev/index.php?title=Mapconstellations&action=edit&redlink=1 mapconstellations], [http://wiki.evemu.dev/index.php?title=Mapsolarsystems&action=edit&redlink=1 mapsolarsystems], [http://wiki.evemu.dev/index.php?title=Mapregions&action=edit&redlink=1 mapregions] and [http://wiki.evemu.dev/index.php?title=Invflags&action=edit&redlink=1 invflags] tables. == <span id="stastationtypes" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Stastationtypes&action=edit&redlink=1 stastationtypes] </span> == == <span id="trntranslationcolumns" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Trntranslationcolumns&action=edit&redlink=1 trntranslationcolumns] </span> == == <span id="trntranslations" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Trntranslations&action=edit&redlink=1 trntranslations] </span> == == <span id="tutorial_categories" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_categories&action=edit&redlink=1 tutorial_categories] </span> == == <span id="tutorial_criteria" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_criteria&action=edit&redlink=1 tutorial_criteria] </span> == == <span id="tutorial_page_criteria" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_page_criteria&action=edit&redlink=1 tutorial_page_criteria] </span> == == <span id="tutorial_pages" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorial_pages&action=edit&redlink=1 tutorial_pages] </span> == == <span id="tutorials" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorials&action=edit&redlink=1 tutorials] </span> == == <span id="tutorials_criterias" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Tutorials_criterias&action=edit&redlink=1 tutorials_criterias] </span> == == <span id="typeactivitymaterials" class="mw-headline"> [http://wiki.evemu.dev/index.php?title=Typeactivitymaterials&action=edit&redlink=1 typeactivitymaterials] </span> == = <span id="Miscellaneous_Info" class="mw-headline"> Miscellaneous Info </span> = == <span id="Skill_Points_-_Clone_Grades" class="mw-headline"> Skill Points - Clone Grades </span> == From dgmtypeattributes table: <br /> skillPointsSaved - &quot;Amount of skill points saved by clone&quot; maxJumpClones hasCloneJumpSlots allowsCloneJumpsWhenActive canReceiveCloneJumps jumpClonesLeft <br /> The first one must be for clone grade. I tried looking for something that stored the skill points accrued by each character, but i bet it doesn't exist and let me explain why: each skill that each character has injected and trained shows up in the entity table with the ownerID of that character, each one of those skills has two entries in the entity_attributes table under its itemID from the entity table: skillPoints and skillLevel. So, the client can figure out how many total skill points are trained if it has the list of skills and the points trained for each. This must mean that the first field in the list above has to be the skill points saved for whichever clone grade you've purchased using station medical services. <br /> Also, if you sort your entity table by ownerID ascending, you should see your primary character entry with an ownerID equal to your accountID in the account table. 4f8968ecd4d6619d698d5f058b839a75a74b5ea1 Recent Project Activity 0 22 378 43 2021-04-07T13:46:59Z Allan 3 update wikitext text/x-wiki [[File:Placeholder|video|right|300px]] [[File:Placeholder|right|300px]] James has successfully integrated Allan's extensive server rewrite/update into the official EvEmu repo. ==0.8.2== Insert version updates here ==0.8.1== Insert version updates here ==0.8.0== Insert version updates here [[Category:Crucible]] 406101e7da103874ffe802cdf0e29962798194ae 379 378 2021-04-07T13:53:14Z Allan 3 added version #s and descriptions wikitext text/x-wiki [[File:Placeholder|video|right|300px]] [[File:Placeholder|right|300px]] James has successfully integrated Allan's extensive server rewrite/update into the official EvEmu repo. ==0.8.3== Added Fleet code. This system is ~90% complete. ==0.8.2== Added Planet and POS code. The POS system is ~45% complete. ==0.8.1== Added preliminary Agent and Mission code as POC.<br> ==0.8.0== Major core code rewrites.<br> Most client services and calls recognized by the server. Some are incomplete at this time. [[Category:Crucible]] 99af4e61c6e42eb45bb93c4d98cb14b1c5ac9549 380 379 2021-04-07T14:24:49Z Allan 3 update wikitext text/x-wiki [[File:Placeholder|video|right|300px]] [[File:Placeholder|right|300px]] James has successfully integrated Allan's extensive server rewrite/updates into the official EvEmu repo.<br> This is a huge leap forward for EvEmu. ==0.8.3== Added Fleet code. This system is ~90% complete. ==0.8.2== Added Planet and POS code. The POS system is ~45% complete. ==0.8.1== Added preliminary Agent and Mission code as POC.<br> ==0.8.0== Major core code rewrites.<br> Most client services and calls recognized by the server. Some are incomplete at this time. [[Category:Crucible]] 2db652561fc1b7624c8108ec611c0c8c796cdc48 Category:Crucible 14 146 381 172 2021-04-07T14:26:55Z Allan 3 wikitext text/x-wiki ==Crucible== '''The EVEmu project is a developing EVE Online server suite and as yet does not support all features offered in the game.''' '''EVEmu Crucible is compatible with EVE Crucible Client v1.6.5 build 360229.''' = <span id="DISCLAIMER" class="mw-headline"> DISCLAIMER </span> = EVEmu is an educational project.<br> This means our primary interest is to learn more about C++ project development on a large scale.<br> Our software is not intended for running public servers and we do not support that.<br> We are not responsible for what others do with the source code downloaded from this project.<br> For users that are new to building servers and would like some background information on the project please go [[Getting Started|here]]. c672add314eed6a5d264629d9ba17cf28bec9e66 Category:Users Guide 14 150 382 204 2021-04-07T14:30:33Z Allan 3 wikitext text/x-wiki This guide is meant for the average user of the EVEmu server and gameplay using a client. It provides information that a normal user would want to know, even if what &quot;normal&quot; means is a full Game Manager (GM) of a server or even the top Administrator. This page and its sub articles are meant as a collection of useful information that will help any user accomplish whatever they need to or want to within the game. = <span id="Introduction" class="mw-headline"> Introduction </span> = Welcome to EVEmu, my friend. This ain't your grandpa's EVE, youngster. This here's the Wild Wild West of EVE. Anything goes, anything stays, and YOU make the rules. This guide will help you learn about those rules and how to make them, and more importantly... how to break them. But, before you dive in, check out [https://wiki.evemu.dev/wiki/Category:Game_Operation#List_of_Known_Deviations_from_Official_CCP_EVE_Online_Operation list of known deviations] that will tell you how playing in EVEmu will be different than playing on EVE Online. == <span id="Normal_Users" class="mw-headline"> Normal Users </span> == Normal users are just that, normal. They don't differ from EVE online's normal user in any way. Normal players cannot use [[List_of_Admin_and_GM_Commands.html|GM commands]]. == <span id="GM_User_-_Game_Manager" class="mw-headline"> GM User - Game Manager </span> == Game Manager users (GMs for short) are super users at the level of being able to manage Normal users in any way necessary, including banning, confiscation of ISK and items, granting of ISK and items, destruction and creation of items and objects in space or in cargo or stations. GMs can use [[List_of_Admin_and_GM_Commands.html|GM Commands]]. Their ability to do so is simply based on the [[EVEmu_Account_Roles.html|role assigned to their account]], therefore all characters they create with that account will have GM status. 6ba7b4e24ff49bd8fff6c9bf046af798d36192e5 Main Page 0 2 387 354 2021-04-07T16:22:40Z Allan 3 removed some old info, updated wording wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with that client. See the [[Crucible Project Status|'''Crucible Project Status''']] page to see what we have implemented and what still needs to be worked on. If you like EVE Online but don't know programming don't worry! We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you like EVE Online and you are a C++, we need you! We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. EVEmu is a learning project as well. Even if you are not a seasoned programmer and just want to learn, everyone is welcome to join us in [[EVEmu Connect#IRC EVEmu|Discord]]! You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} 4c85528063c16b1e20940e5f7c4b8d531b89fdb5 388 387 2021-04-07T16:27:49Z Allan 3 updated more wording wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with it.<br> The [[Crucible Project Status|'''Crucible Project Status''']] page lists what we have implemented by system and an estimated completion status.<br> If you like EVE Online and you are a C++ programmer, we need you!<br> We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. If you don't know anything about C++ code, you can still help!<br> We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you've ever thought about learning C++, you are welcome to join in! EVEmu is a learning project. Get on [[EVEmu Connect#IRC EVEmu|Discord]] and talk with us!<br> You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" Finally, thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]], try the [[Special:Search|site search]], or peruse our comprehensive navigation panel below. -- The EVEmu Team {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} c6f7037d8e7547a27815eaa6e151e893d75d5fb9 389 388 2021-04-07T18:33:43Z Allan 3 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Current overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with it.<br> The [[Crucible Project Status|'''Crucible Project Status''']] page lists what we have implemented by system and an estimated completion status.<br> If you like EVE Online and you are a C++ programmer, we need you!<br> We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. If you don't know anything about C++ code, you can still help!<br> We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you've ever thought about learning C++, you are welcome to join in! EVEmu is a learning project. Get on [[EVEmu Connect#IRC EVEmu|Discord]] and talk with us!<br> You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} <br> Thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]] or try the [[Special:Search|site search]]. -- The EVEmu Team 3fab9bacaef52d2ecc21bc4f262193089f3f1407 390 389 2021-04-07T18:34:47Z Allan 3 updated wording again wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Estimated overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with it.<br> The [[Crucible Project Status|'''Crucible Project Status''']] page lists what we have implemented by system and an estimated completion status.<br> If you like EVE Online and you are a C++ programmer, we need you!<br> We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. If you don't know anything about C++ code, you can still help!<br> We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you've ever thought about learning C++, you are welcome to join in! EVEmu is a learning project. Get on [[EVEmu Connect#IRC EVEmu|Discord]] and talk with us!<br> You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} | valign="top" | {{:Main_Page/Developer_Links}} |} <br> Thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]] or try the [[Special:Search|site search]]. -- The EVEmu Team eca4836b7a5769c0bb451eee443b9dad07997dfe Crucible Project Status 0 7 391 320 2021-04-07T18:41:09Z Allan 3 changed yellow to cyan for better visibility wikitext text/x-wiki __TOC__ <tr><td class="content"> <h1><center><span class="mw-headline" id="Crucible">EVEmu Crucible Server</span></center></h1> <table style="background: transparent; width:100%"><tr> <td style="text-align: center;"><h2>Estimated Progress of Listed Systems</h2></td></tr></table> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:59%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table></td></tr></table> <table style="background: transparent; width:100%"><tr><td style="text-align: center;"> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:59%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>59.5%</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"><BR><BR> This data is reflection of current EVEmu code status.<BR>If a system is NOT listed here, then it isnt implemented at all.<BR><BR> <BR> Items listed as "<font color=red>NOT IMPLEMENTED</font>" are not coded at all. <BR> The server will not respond to requests, you will get an error, and the server may even crash. (this is ok, and expected)<BR><BR> Items listed as "<font color=magenta>Skeleton Code Only</font>" has a basic outline coded, but limited or no processing and/or returns. <BR> The server may not respond or only partially respond to these requests. You may get an error from these requests, and the server may crash.<BR><BR> Items listed as "<font color=cyan>Preliminary Implementation</font>" have a rough draft of their specific code, just a step or two above skeleton code, and may not function properly or completely. <BR> There will be some response, like opening windows, but will not generate an error and will very seldom crash the server.</font><BR><BR><BR> <font color="orange">Last Update:</font>&nbsp;&nbsp;&nbsp;<font color=green>14 February 2021</font><BR> <font color="orange">Page Status:</font>&nbsp;&nbsp;&nbsp;<font color=red>Outdated</font> - <font color="yellow">Being Updated</font><BR> <font color="orange">Incomplete Data:</font>&nbsp;&nbsp;&nbsp;All data currently under review. Found discrepancies in pre-rewrite tests (before mid-2016)<BR><BR></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="System_Foundation_Fundamentals"> System Foundation Fundamentals (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>62.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"><tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td><td style="width: 26%;">Comments</td></tr> <tr><td> - Stable, Efficient Server Code</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress - eliminating duplicated code and headers, tracking/fixing segfaults, updating code to C++/0x11<BR>14Feb21</td></tr> <tr><td> - Memory Management</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress<BR>While greatly improved over official branch,<BR><font color="red">still horrible</font><BR>14Feb21</td></tr> <tr><td> - Efficient, Accurate Packet Deciphering</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>In Progress - Most packets understood and correctly processed<BR>27July15</td></tr> <tr><td> - Mutexes</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>All MT systems correctly lock/unlock data - no data races<BR>14Feb21</td></tr> <tr><td> - Eliminate all compiler Warnings from the EVEmu solution</td><td class="working">50% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="pink">Not Complete</font><BR><font color=olive>Enabling all compiler warnings gives 10.8Mb log file of errors</font><BR>10Dec18</td></tr> <tr><td> - GM commands<BR>Most commands need complete rewrite</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Working</font><BR><font color=magenta>Needs Work</font><BR>27Jun17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Information"> Item Information Windows (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:90%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:90%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>90.0</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Get Item Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Ship Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Skill Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Certification Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Character Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get NPC Corporation Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> <tr><td> - Get Player Corporation Info</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>22Aug18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Account_and_Character_Management"> Account and Character Management (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:96%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table></td></tr></table></div></div> <div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><table style="background: transparent; width:96%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>96.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Account Login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>15Feb14</td></tr> <tr><td> - Account Banning/Kicking</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Unknown<BR>2Dec18</td></tr> <tr><td> - Character Creation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>15Feb14</td></tr> <tr><td> - Character Deletion</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar19</td></tr> <tr><td> - Character entrance to last location</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Character Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>17Nov17</td></tr> <tr><td> - Open Skills Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Certificate Window and Planner</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Decorations Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30May19</td></tr> <tr><td> - Open Attributes Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Neural Remap</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Augmentations Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Implants Not Implemented</font><BR>1Feb14</td></tr> <tr><td> - Open Jump Clones Window</td><td class="broken">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Jump Clones Not Implemented</font><BR>1Feb14</td></tr> <tr><td> - Open Bio Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Open Employment History Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>4Apr14</td></tr> <tr><td> - Open Standings Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>Standings partially Implemented (see below)<BR>17Nov18</td></tr> <tr><td> - Open Security Status Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>SecStatus partially Implemented - changes not saved to db yet.<BR>1Feb14</td></tr> <tr><td> - Open Kill Rights Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Kill Rights Not Implemented</font><BR>1Feb14</td></tr><tr> <td> - Open Combat Log Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>Combat Log partially Implemented<BR>17July17</td></tr> <td> - KillMail</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>17July17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Skills_-_Certificates"> Skills &amp; Certificates (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:98%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>98.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Browse Skills to train</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Add skills to queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Filter skills that don't fit in queue time remaining</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Apply changes to skill queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Pause skill queue</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Re-Start skill queue after pause</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Skill training time</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Right-click add skill to queue from Skills Window in Character Window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - Certificate Awarding</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Standings"> Standings (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:19%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:19%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>18.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - <font color=lime>Faction Standings (NPC Alliances)</font> &nbsp;&nbsp;--&nbsp;&nbsp; <font color=cyan>These standings cannot be modified.</font></td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar14</td></tr> <tr><td> - <font color=lime>CONCORD Standings (Security Rating)</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Agent to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Agent to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Agents respond to Character standings (personal, corp, ally)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - NPC Corp to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions and faction kills</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - NPC Corp to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by missions and faction kills</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Character to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by PnP window</font></td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Character to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by PnP window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Player Corp to Character&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Player Corp to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Alliance to Player Corp&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Alliance to Alliance&nbsp;&nbsp;--&nbsp;&nbsp; <font color=green>Changed by Corp Management window</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="NPC_Station_Services"> NPC Station Services (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>82.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Right-click Menu in Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - In-station Guests List</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can repackage ships/items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can assemble ships and items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21Feb14</td></tr> <tr><td> - Can eject from ship to pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Nov15</td></tr> <tr><td> - Can make active ships</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Nov15</td></tr> <tr><td> - Agent Services</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>13Nov18</td></tr> <tr><td> - Trade Services</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=red>corp trade not coded.</font><BR>27Jun17</td></tr> <tr><td> - Repair Services</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Insurance Services</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>22Aug15</td></tr> <tr><td> - Bounty Services</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>22Aug15</td></tr> <tr><td> - Market Services</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR> <font color=red>Corp Buy/Sell Incomplete</font><BR>10Dec18</td></tr> <tr><td> - Medical Services</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=yellow>Few Odd Bugs</font><BR>30Dec14</td></tr> <tr><td> - LP Services</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Clone upgrade</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Clone transfer</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Jump clone installation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Items window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21Feb14</td></tr> <tr><td> - Can merge/stack/split items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can trash items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can open/close containers</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Can move items into/out of containers</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> <tr><td> - Can inject skills from items</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Feb14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Agents"> Agents (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:63%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>63.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Agents Tab</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can initiate conversation with agent</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Agents offer Missions</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can View Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Accept Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Complete Mission Offer</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Can Search Agents</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>19Nov18</td></tr> <tr><td> - Can Search for character by agent</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Missions"> Missions (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:15%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:15%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>13.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Missions Give Rewards (isk/standings)</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>19Nov18</td></tr> <tr><td> - Missions Give LP</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Basic Mission Types</h3></font></td></tr> <tr><td> - <font color=lime>Courier Missions</font><BR> Simple delivery where you are requested to move items from one location to another. No standing loss from opposing faction.</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Mining Missions</font><BR> 2 Types. Mine specific ore at specific location, or supply agent with mined ore or reprocessed minerals.</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Security Missions</font><BR> 2 Types. Destroy ships at given location in space. Destroy ships in deadspace pockets using acceleration gates.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Trade Missions</font><BR> Provide Agent with requested items at a specific station. Can be either crafted or bought. <BR> No standing loss from opposing faction.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Special Mission Types</h3></font></td></tr> <tr><td> - <font color=lime>Tutorial Missions</font><BR> Missions for beginning pilots to learn game basics. On Hold...May not be implemented.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Storyline Missions</font><BR> Special Missions to gain faction standings with agent giving mission. Given after 10-15 basic mission completions. Repeatable.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Research Missions</font><BR> Special Missions given from Research Agents for characters doing research with that agent.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Data Missions</font><BR> Turn in pirate tags for standings. Higher Agents may give basic missions for higher rewards.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Cosmos Missions</font><BR> Small Mission Chains, given from CONCORD agents. Can only be completed once. <BR>Expiration, Failure or Denial forever blocks giving agent.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Anomic Missions</font><BR> Given by L4 Security Agents. Can be declined without penalty. Ship Restrictions.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Arc Missions</font><BR> Large Mission Chains broken into chapters. 7 total Epic Arcs. Can be repeated every 3 months.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Nov18</td></tr> <tr><td> - <font color=lime>Unsorted Missions</font><BR> Custom missions separate from other categories.</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>19Nov18</td></tr></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Chats_-_Local_Corp_Custom_Private"> LSC - Large Scale Chat System (<font color=pink>Rewrite on hold</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:68%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:68%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>68.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Open/View Static Server Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Join Static Server Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - rClick Chat Menu</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Characters show up in Local</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>24Nov17</td></tr> <tr><td> - Chat in Local</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Characters show up in Corp</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>24Nov17</td></tr> <tr><td> - Chat in Corp</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR>24Nov17</td></tr> <tr><td> - Initiate Private Conversation Chat</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Create Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Joining Created Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Chat in Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Load Subscribed Chat Channels Upon Login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Configure Private Chat Channels</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Leave Chat Channels</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Unsubscribe from Private Chat Channel</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>2Feb20</td></tr> <tr><td> - Character and Corporation Lookup (via Search)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="EvE_Mail"> EvE Mail (<font color=pink>Rewrite on hold</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>40.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td><font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - System-Generated mail <BR>(insurance, kills, corp notifications, etc.)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Can Send Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Receive Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can View Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Reply-to Eve-mails</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=olive>Still Buggy</font><BR>7Sep14</td></tr> <tr><td> - Can Send Eve-mails to Groups (like Corp)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Create new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Private Mailing Lists Saved to DB/Restored from DB</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send/Receive messages in new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Mail</h3></font></td></tr> <tr><td> - Can Send Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Receive Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can View Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Reply-to Eve-mails</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send Eve-mails to Groups (like Corp)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Create new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Private Mailing Lists Saved to DB/Restored from DB</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Can Send/Receive messages in new Private Mailing Lists</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Belt_Manager"> Calendar (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:64%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:64%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>64.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Open Calendar</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - View Events</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Respond to Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td> - Edit Response to Event</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>31Oct20</td></tr> <tr><td> - View Event Responses</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Personal </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporate </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>31Oct20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alliance </h3></font></td></tr> <tr><td> - Create Event</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=pink>Alliances not implemented</font><BR>31Oct20</td></tr> <tr><td> - Edit Event</td><td class="working">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>31Oct20</td></tr> <tr><td> - Delete Event</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=pink>Alliances not implemented</font><BR>31Oct20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Market_Details"> Market Details (<font color=pink>Rewrite on hold</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:48%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:48%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>48.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Price History</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - View Items on Market</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - View Item Details (Price History, Buy/Sell orders)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - Buy Items on Market (auto-pick seller)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=green>COMPLETE</font><BR>11Dec18</td></tr> <tr><td> - Buy Items on Market in Specific Location</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Placing Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Cancelling Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Modify Buy Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Placing Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Cancelling Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td> - Modify Sell Orders</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=yellow>Needs More Testing</font><BR>11Dec18</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Market</h3></font></td></tr> <tr><td> - Buy Items on Market (auto-pick seller)</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Buy Items on Market in Specific Location</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Placing Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Cancelling Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Modify Buy Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Placing Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Cancelling Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> <tr><td> - Modify Sell Orders</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>26May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Assets_Window"> Assets Window (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:85%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:85%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>85.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - All Assets View</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Region</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Constellation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Solar System</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - View Assets by Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Search Assets</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>6Mar14</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - All Assets View</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Region</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Constellation</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Solar System</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - View Assets by Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26May19</td></tr> <tr><td> - Search Assets</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>26May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Wallet_Window"> Wallet </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:98%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>97.5</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - View Journal Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Shares Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Orders Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td> - View Transactions Entries</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec17</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - View Journal Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Shares Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Orders Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> <tr><td> - View Transactions Entries</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Contracts_Window"> Contracts (<font color=red>Needs Complete Rewrite</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:16.6%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:16.6%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>16.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Start Page</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - Create Contracts</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working - cannot complete contract<BR>27July15</td></tr> <tr><td> - Get contract info</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - List our contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - List available contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - Delete contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Start Page</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - Create Contracts</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working - cannot complete contract<BR>27July15</td></tr> <tr><td> - Get contract info</td><td class="working">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Working<BR>6Mar14</td></tr> <tr><td> - List our contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - List available contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> <tr><td> - Delete contracts</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>6Mar14</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Map_System"> Map System (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:89%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:89%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>88.7</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can show Solar System map</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can show/use Map Browser (F11)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can search Solar Systems</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can plot routes by searching systems and adding waypoints</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Can Get Satistics on Systems</td><td class="working">89% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 89%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Most Aspects Working<BR>25Mar14</td></tr> <tr><td> - Can Get Visited Systems</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get Jumps Last Hour</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get Pilots in Space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26Nov18</td></tr> <tr><td> - Can Get Pilots Docked and Active.</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>26Nov18</td></tr> <tr><td> - Can Get Kills / Kills last 24 Hours</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get PodKills / PodKills last 24 Hours</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My Available Agents</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Nov18</td></tr> <tr><td> - Can Get My Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My Assets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>7Sep14</td></tr> <tr><td> - Can Get My CorpMembers in Space</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar14</td></tr> <tr><td> - Can Get Active Cyno Fields</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR><font color=red>Cyno Generator Not Implemented</font><BR>26Nov18</td></tr> <tr><td> - Can Get Recent Sovernity Changes</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR><font color=red>Contested Sovereignty Not Implemented</font><BR>6Mar14</td></tr> <tr><td> - Can Get Incursions</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR><font color=red>Incursions Not Implemented</font><BR>6Mar14</td></tr></table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Bookmark_System"> Bookmark System (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>94.4</b></font>&#160;&#160;&#160;&#160; </td></tr></table></td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160; </td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Character Bookmarks</h3></font></td></tr> <tr><td> - Bookmark system</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=pink>Final Testing</font><BR>2Feb20</td></tr> <tr><td> - Bookmarks loaded from database at character login</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Bookmark a location in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Bookmark a station, planet, moon, stargate</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Update a Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Delete Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Copy Bookmark to Ship Cargo or Station Hangar</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <p><br style="clear:both;" /></p> <tr><td> - Create a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Update a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Dec14</td></tr> <tr><td> - Delete a Bookmark Folder</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Move Bookmark to another Folder</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporation Bookmarks</h3></font></td></tr> <tr><td> - Update a Character Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Update a Corp Bookmark</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Delete Bookmarks</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Copy Bookmark to Ship Cargo or Station Hangar</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Create a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Update a Bookmark Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> <tr><td> - Delete a Bookmark Folder</td><td class="working">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Move Bookmark to another Folder</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="fxSystem"> Effects System (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:83%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>83.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - <font color=lime>Parsing Effects</font><BR>&nbsp;&nbsp;&nbsp;This is decoding effects data before processing can occur</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fx Source Processing - Item applying the effect</h3></font></td></tr> <tr><td> - <font color=lime>Process Self Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Ship (T1, T2), Module or Charge</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>10Feb20</td></tr> <tr><td> - <font color=lime>Process Skill Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Skill, Implant or Booster</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR><font color=red>Implants and Boosters not implemented</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Ship Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is Ship Subsystem (T3 ships only)</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED<BR>T3 Ships are not implemented.</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Group Effects</font><BR>&nbsp;&nbsp;&nbsp;Source is not a source per se, this defines the target selection requirements</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>19Jun19</td></tr> <!-- <tr><td> - <font color=lime>Process Gang Effects</font><BR>&nbsp;&nbsp;&nbsp;Fleet Booster Skills</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>Actual Fleet Bonuses are hard-coded and do not process thru Fx System.<BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Owner Effects</font><BR>Owner Source Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Process Target Effects</font><BR>&nbsp;&nbsp;&nbsp;Target Source Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Complete</font><BR><font color=orange>Testing</font><BR>19Jun19</td></tr> // --> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fx Target Processing - These vary depending on Source</h3></font></td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Self</font><BR>&nbsp;&nbsp;&nbsp;Source Item or a Location for Group Effects</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Character</font><BR>&nbsp;&nbsp;&nbsp;Character or Character Skills</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>7Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Ship</font><BR>&nbsp;&nbsp;&nbsp;Character's Ship</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Target</font><BR>&nbsp;&nbsp;&nbsp;Ship's current target, either ship or structure.</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>19Jun19</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Other</font><BR>&nbsp;&nbsp;&nbsp;Character's ship for Skill Source. Specific Module for Charge Source.</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <tr><td> - <font color=lime>Apply Processed Effects to Charge</font><BR>&nbsp;&nbsp;&nbsp;Loaded Charge on a Module or Module Group</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Feb20</td></tr> <!-- <tr><td> - <font color=lime>Apply Processed Effects to Area</font><BR>&nbsp;&nbsp;&nbsp;Area Target Unknown at this time</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>19Jun19</td></tr> // --> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Management"> Ship Management (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> &#160;<font color="red"><b>79.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"> <tr><td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can Jettison items into space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can open Jetcans and Add/Remove items within them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can open Containers in space and Add/Remove items within them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>29Nov15</td></tr> <tr><td> - Can eject from ship to pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can Link Weapons</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can AutoLink Weapons **Using GroupAllWeapons button**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Load Linked Weapons **Linked Weapons Load as a group**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Unload Linked Weapons **Linked Weapons UnLoad as a group**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <tr><td> - Can Un-Link Weapons **Linked Weapons will NOT UnLoad Charges when UnLinked**</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> <!-- <tr><td> - Charges Stack in cargo while in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec18</td></tr> --> <tr><td> - Unpiloted ships stay in space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can board ships in space from pod</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>9Dec15</td></tr> <tr><td> - Can name your ship</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can use specialized bays on ships that have them</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug17</td></tr> <tr><td> - Can activate Self-Destruct</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>22Aug15</td></tr> <tr><td> - Ships Generate Heat (when modules are activated)</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Ships Dissipate Heat</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Capital Ship Management</h3></font></td></tr> <tr><td> - Can configure ship</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Can install clone</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>7Sep14</td></tr> <tr><td> - Can store/retrieve ships</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>15Aug18</td></tr> <tr><td> - Can store/retrieve items from Corporate Hangar</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>1Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Fittings"> Ship Fittings Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:10%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:10%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>10</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Characters</h3></font></td></tr> <tr><td> - Save Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Retrieve Saved Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Delete Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Update Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Save Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Retrieve Saved Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Delete Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td> - Update Fittings</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Navigation"> Ship Navigation (Destiny) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:91%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:91%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>90.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Stargate Jump</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Orbit Object</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=orange>Hacked</font><BR>15Jul16</td></tr> <tr><td> - Follow Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Approach Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Keep Object at Distance</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Aligning to Object</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Warp to object on-grid</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Warp to object off-grid</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Dock to Station</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Undock from Station (with velocity)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - Can travel routes using AutoPilot</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font> - <font color=cyan>AP shuts off after every jump</font><BR>7Sep14</td></tr> <tr><td> - Warp-in from random location at login</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=red>NOT IMPLEMENTED</font><BR>10Aug16</td></tr> <tr><td> - Warp-out to random location at logoff</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=red>NOT IMPLEMENTED</font><BR>10Aug16</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Combat"> Combat (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:99%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:97%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>99.2</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can Lock Target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Activate Modules</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Modules affect target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Orbit target</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=orange>Hacked</font><BR>15Jul16</td></tr> <tr><td> - Can Follow target</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Can Keep target at distance</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Pilot moved to pod when ship destroyed</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Dec18</td></tr> <tr><td> - Pilot moved to clone (at clone's location) when pod destroyed</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>2Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Module_Management"> Module Management (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:70%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:70%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>70.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Can drop modules on ship in Fitting window (auto-insert into slots)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can drop modules on specific slots in Fitting window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>10Aug16</td></tr> <tr><td> - Can Online/Offline modules in Fitting window</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Can remove modules from Fitting window to cargo or hangar</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Can add/remove charges to modules slots in Fitting window</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can move modules from slot to slot in Fitting window</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can Activate modules on ship (in space only)</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - Activated modules on ship in space produce desired effect</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can De-activate modules on ship in space</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="orange">Can Exploit</font><BR><font color="violet">Needs Update</font><BR>25Feb20</td></tr> <tr><td> - De-activated modules on ship in space remove effect</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Feb20</td></tr> <tr><td> - Can Overload modules (and they work)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Can De-activate Overloaded modules</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Overloaded modules damage bank from heat</td><td class="working">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Can repair damaged modules (using nanite paste)</td><td class="working">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Jan19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Ship_Modules"> Ship Module Groups (<font color=cyan>Rewrite</font> - <font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:87%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:87%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>87.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Module Group</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Engineering</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Electronic</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Turrets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Missiles</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Weapons - Other</td><td class="broken">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Aug16</td></tr> <tr><td> - Shields</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Armor</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Hull</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - EWAR</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Propulsion</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>17Nov17</td></tr> <tr><td> - Mining</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> <tr><td> - Gang Assist</td><td class="broken">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>10Aug16</td></tr> <tr><td> - Rigs</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27Jun17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Drones"> Drones (<font color=cyan>Rewrite in progress</font> - <font color=green>Current</font>) </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:18%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:18%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>18.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Launch Drones</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 65%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Scoop to Cargo</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Scoop to Drone Bay</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drone AI </h3></font></td></tr> <tr><td><font color=lime>Passive/Aggressive</font><BR>(toggle - <font color=lime>passive</font>: attack only upon command. <font color=lime>aggressive</font>: attack any valid target.)</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font> - <font color=orange>Very Basic.</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Attack and Follow</font> <font color=yellow>(fighters only)</font><BR>Will chase target in warp.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Assist</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Guard</font></td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine</font></td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Focus Fire</font><BR>All drones fire upon (or mine) same target till destroyed or commanded otherwise.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Drone Commands </h3></font></td></tr> <tr><td><font color=lime>Attack</font><BR>Engage target the assigned ship currently-attacking.<BR>If assigned ship has multiple targets, first locked target is chosen.</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font> - <font color=orange>Very Basic.</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Assist</font><BR>Engage anything assigned ship activates offensive module on. (passive/aggressive ignored)</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Guard</font><BR> Retaliate towards any threat to assigned ship.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine</font><BR>Mine assigned asteroid for one cycle, then return and orbit.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Mine Repeatedly</font><BR>Mine assigned asteroid until depleted or commanded otherwise.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Abandon</font><BR>Relinquish control and ownership of drone.</td><td class="working">80% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 80%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Return and orbit</font><BR>Should I explain this?</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Return To Drone Bay</font><BR>To Be Determined.</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td><font color=lime>Reconnect to Lost Drones</font><BR>Try to reestablish communication with drones previously abandoned or went past ship's drone control range.</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="NPC_Combat_Spawning_AI"> NPC AI, Combat &amp; Spawning (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:66%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>65.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - NPC look for targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC engage when targeted (if idle)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC approach found targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC lock/engage/orbit targets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>27July15</td></tr> <tr><td> - NPC notice new targets within sight range, and engage weakest</td><td class="working">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Partially Implemented - very buggy<BR>27July15</td></tr> <tr><td> - NPC special actions/call for help/retreat</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <tr><td> - Rats find/harass Characters in space</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Rat Wreck Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Rat Loot</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Science_and_Industry"> Science &amp; Industry (<font color=pink>Rewrite on hold</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:38%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:38%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>38.1</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Players</h3></font></td></tr> <tr><td> - Research</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - Invention</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar15</td></tr> <tr><td> - Reverse Engineering</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>6Mar15</td></tr> <tr><td> - Ore Mining</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - Gas Mining</td><td class="broken">30% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 30%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Refining and Reprocessing</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>30Mar18</td></tr> <tr><td> - Manufacturing</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>30Mar18</td></tr> <tr><td> - R&amp;D using Agents</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>30Nov15</td></tr> <tr><td colspan=3><font color=white><h3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Corporations</h3></font></td></tr> <tr><td> - Research</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Invention</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Reverse Engineering</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Refining and Reprocessing</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> <tr><td> - Manufacturing</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>30May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Scan_and_Probing"> Scanning &amp; Probing (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:99%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:95%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>99.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - System Scanning using Ship Sensors (Without Probes)</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>21May16</td></tr> <tr><td> - Directional Scanning (using Ship Sensors)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>20Feb20</td></tr> <tr><td> - Launch Probes from ship</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Move Probes in Space</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Change Probe Range</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - System Scanning with Probes (See 'Scan Manager' Data Block below for details)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>6Mar18</td></tr> <tr><td> - Bookmark Scanned Result</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> <tr><td> - Warp to Scanned Result</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>6Mar18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Fleet_System"> Fleet System (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:94%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>94.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Create Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Fleet management window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set Fleet MOTD</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Fleet Warp</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>23Nov18</td></tr> <tr><td> - View Fleet Composition</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Create/Delete Wings and Squads</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Name Wings and Squads</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Invite to Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Accept Fleet Invite</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Reject Fleet Invite</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Leave Fleet</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Working, but cannot rejoin or create fleet after leave<BR>1Dec17</td></tr> <tr><td> - Kick Member</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 85%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td>Working, but cannot rejoin or create fleet after leave<BR>1Dec17</td></tr> <tr><td> - Move fleet members</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set commanders</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Set boosters</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Commanders provide bonuses to their members</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Boosters provide bonuses to their members</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to system</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Broadcast to bubble</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Add Member to watch list</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Remove Member from watch list</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> <tr><td> - Fleet chat window</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Advertise Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - View Availible Fleets</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - Apply to Advertised Fleet</td><td class="working">100% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 100%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="green">COMPLETE</font><BR>1Dec17</td></tr> <tr><td> - View Fleet Applications</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>1Dec17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Planetary_Interaction"> Planetary Interaction System </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:71%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:71%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>71.6</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Planet Search</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Planet View</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Planet Resource Survey</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Command Center </td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Creating Extractor Heads</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Silo</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Creating logistic routes (links) on planet</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Installing Schematics</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Factory Automation (run schematics)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=olive>PlayTesting</font><BR>27Dec16</td></tr> <tr><td> - Install/Use Space Ports</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Planetary Customs Office</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>27Dec16</td></tr> <tr><td> - Launching Items to Customs Office</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>27Dec16</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Corporation_Management"> Corporation Management </span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:67%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:67%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>67.7</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Create a corporation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>10Dec17</td></tr> <tr><td> - Managing Members</td><td class="working">70% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 70%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Apply to Join Corp</td><td class="broken">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Invite to Join Corp</td><td class="broken">50% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 50%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Quit Corp</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Kick from Corp</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="brown">Mostly Non-Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Roles</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Divisions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Recruitment</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Creating/Editing Advert</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Funds</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Managing Voting</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Roles</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Divisions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Members</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Corp History</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Viewing Journal</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Transactions</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Viewing Bills</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Viewing Assets</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Renting Office</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Moving HeadQuarters</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Declaring War</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>10Dec17</td></tr> <tr><td> - Moving Items In and Out of corp hangars</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>20Dec17</td></tr> <tr><td> - Market Deliveries and Returns in Station</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>20Dec17</td></tr> <tr><td> - Impounded Items</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>20Dec17</td></tr> <tr><td> - Creating Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Viewing Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> <tr><td> - Awarding Medals</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Alliance_Management"> Alliance Management (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:11%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:11%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>11</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Creating Alliance</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Join Alliance</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Alliance Bulletins</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> <tr><td> - Alliance History (Corp Employment)</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>(to eliminate client error in corp window)<BR>25May19</td></tr> <tr><td> - Alliance Wars</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>25May19</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="POS_Operations"> POS - Player Owned Structures (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:61%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:61%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>61.4</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Deploying Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Scoop Structures to Cargo Bay</td><td class="working">85% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 85%; background:#00DB00"> </td><td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table> <td><font color=lime>Working</font> - <font color=olive>Needs More Testing</font><BR>28Dec17</td></tr> <tr><td> - Anchoring Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Onlining Structures</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Tower</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Structures Access</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Managing Tower Field Access</td><td class="broken">5% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 5%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>Broken</font><BR><font color=magenta>Needs Work</font><BR>28Dec17</td></tr> <tr><td> - Can Add/Remove Fuel and Strontium in Tower Holds</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=pink>Final Testing</font><BR>28Dec17</td></tr> <tr><td> - Reinforcing Tower</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Interaction with Structures</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can store/retrieve ships from Ship Maintenance Arrays</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can store/retrieve items from Corporate Hangar Arrays</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can Add/Remove Charges for Offensive Batteries</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Using Structures</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Somewhat Working</font><BR><font color=orange>Testing</font><BR>28Dec17</td></tr> <tr><td> - Can Take Control of Offensive Batteries</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Moon Mining</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> <tr><td> - Processing Moon Goo</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>28Dec17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Cosmic_Management"> Cosmic Management System (Details in Specific System Listing)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:55%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:55%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>54.8</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Anomaly Manager</td><td class="working">20% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 20%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Dungeon Manager</td><td class="broken">40% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 40%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Belt Manager</td><td class="working">81% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 81%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - Spawn Manager</td><td class="working">86% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 86%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - Scan Manager</td><td class="working">67% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 67%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>27Aug17</td></tr> <tr><td> - WormHole Manager</td><td class="broken">24% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 24%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>27Aug17</td></tr> <tr><td> - Civilian Manager</td><td class="broken">7% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 7%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>27Aug17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Anomaly_Manager"> Anomaly Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:20%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:20%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>19.3</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Gravametric Site Creation</td><td class="working">90% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 90%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Gravametric Site Destruction</td><td class="working">65% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 65%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Magnetometric Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Magnetometric Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Radar Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Radar Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Ladar Site Creation</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Ladar Site Destruction</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Dungeon_Manager"> Dungeon Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:40%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>40.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Anomaly Dungeon Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Anomaly Dungeon Destruction</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Mission Dungeon Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Mission Dungeon Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Unrated Dungeon Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font> - <font color=brown>PlayTesting</font><BR>12Feb17</td></tr> <tr><td> - Unrated Dungeon Destruction</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=lime>Mostly Working</font><BR><font color=orange>Testing</font><BR>2Feb20</td></tr> <tr><td> - Unrated Escalation Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Unrated Escalation Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - DED Complex Creation</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - DED Complex Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Belt_Manager"> Belt Manager (<font color=yellow>needs review</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:81%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:81%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>81.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Asteroid Belt Creation</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroid Belt Destruction</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Grow when idle</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Disappear when mined out (individual roids)</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> <tr><td> - Asteroids Belts Respawn when empty</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Complete</font> - <font color=brown>PlayTesting</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Spawn_Manager"> Spawn Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:65%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width: 65%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>65.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Dynamic spawning (Belt, Mission, Deadspace)</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Static spawning (Gate)</td><td class="working">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"> <tr><td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - Spawn Destruction/Removal</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns Warp into Belts</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns Warp out of Belts</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Spawns guard Gates</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Scan_Manager"> Scan Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:80%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>80.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Probe Acquiring Data based on Probe's Attributes and Character Skills</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Anomaly Data compilation based on Probe Results</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> <tr><td> - Reporting of Compiled Data</td><td class="working">95% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 95%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="pink">Final Testing</font><BR>11Dec18</td></tr> <tr><td> - Probe Management</td><td class="working">75% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 75%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Complete</font><BR><font color=orange>Testing</font><BR>11Dec18</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="WormHole_Manager"> WormHole Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:24%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:24%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>24.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - WormHole Creation</td><td class="working">25% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 25%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - WormHole Tracking</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - WormHole Destruction</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - View WormHole Details</td><td class="working">60% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 60%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color="lime">Mostly Working</font><BR><font color=orange>Testing</font><BR>12Feb17</td></tr> <tr><td> - Jumping thru WormHole</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> <h2> <span class="mw-headline" id="Civilian_Manager"> Civilian Manager (<font color=green>Current</font>)</span></h2> <div id="Main_progress_bar_appearance_and_calculation" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 5px"> <table style="background: transparent; border:3px solid blue; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: #2222EE; width:7%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td></td></tr></table> </td></tr></table></div></div><div id="Current_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 8px"> <table style="background: transparent; border:2px clear; width:100%; height:50px; -moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr><td> <table style="background: transparent; width:7%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> &#160;<font color="red"><b>7.0</b></font>&#160;&#160;&#160;&#160;</td></tr></table> </td></tr></table></div></div><div id="goal_value_marker" style="position:relative; width:100%"><div style="position:absolute; width:100%; top: 11px"> <table style="background: transparent; border:2px clear; width:100%; height:50px;-moz-border-radius: 110px; -webkit-border-radius: 110px; border-radius: 110px; text-align:right"><tr> <td> <font color="red"><b>100</b></font>&#160;&#160;&#160;&#160;</td></tr></table></div></div><br /><p><br /><br /></p><p><br /></p> <table class="statusTable" border="1" style="width: 100%; border-collapse: collapse; border-style: solid;border-width: 1px;border-color: #666;"> <tr><td style="width: 70&amp;;">Service/Action</td> <td style="width: 4%;">Status</td> <td style="width: 26%;">Comments</td></tr> <tr><td> - Civilian Ship Creation</td><td class="broken">15% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 15%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=cyan>Preliminary Implementation</font><BR>12Feb17</td></tr> <tr><td> - Civilian Ships "Undock" from station</td><td class="broken">10% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 10%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=magenta>Skeleton Code Only</font><BR>12Feb17</td></tr> <tr><td> - Civilian Ships "Dock" to station</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Civilian Ships Travel in System</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> <tr><td> - Civilian Ships Travel using Jump Gates</td><td class="broken">0% <table style="text-align: left; width: 150px; border: 1px solid black" cellspacing="1"><tr> <td style="text-align: left; height: 12px; width: 1%; background:#00DB00"></td> <td style="text-align: left; height: 15px; background:#ffffff"></td></tr></table></td> <td><font color=red>NOT IMPLEMENTED</font><BR>2Feb20</td></tr> </table> <p><br style="clear:both;" /></p> </table><BR><BR> b8315b97f1ec87dbfba88d0b3073d5070630c73f Windows Server 2019 0 207 393 2021-04-07T20:56:01Z VDex 11 Created page with "=== Basic Information === Compiling and Running a Docker Image on Windows Server 2019, while having advantages for Multi-CPU Systems, requires a few extra steps. As Server 20..." wikitext text/x-wiki === Basic Information === Compiling and Running a Docker Image on Windows Server 2019, while having advantages for Multi-CPU Systems, requires a few extra steps. As Server 2019 is not equipped with WSL2 (''Windows Subsystem for Linux, Version 2''), there are a few extra steps. === Prerequisites === First of all, install Docker for Desktop ([https://hub.docker.com/editions/community/docker-ce-desktop-windows]) and Git ([https://git-scm.com/downloads Git]). Now open up Powershell as administrator and enable WSL by entering * Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux It will prompt you to reboot. After a reboot we just need to reconfigure git to read the line feeds from the shell scripts correctly. To change this, enter * git config --global core.autocrlf input into a Powershell with elevated privileges. Right click your docker notification icon and hit „Switch to Linux Containers“. This will take a few minutes. === Starting the Server === Continue in Powershell, make sure you’re in the correct folder where you want to deploy EVEMU in, and enter * git clone https://github.com/EvEmu-Project/evemu_Crucible.git Depending on your internet connection, this might take a bit. Once its done, enter the Cloned Folder with * cd evemu_Crucible Now you’re almost done! One last step to get it up and running is to follow up in Powershell with * docker-compose -p evemu up --build -d Wait until its done and your Docker Desktop Window should have both the Database and the Server running. Enjoy playing. a849b2539fe654a57a0ff902ef5fc41ee92dad26 394 393 2021-04-07T20:58:35Z VDex 11 Wording changes and a few better sentences wikitext text/x-wiki === Basic Information === Compiling and Running a Docker Image on Windows Server 2019, while having advantages for Multi-CPU Systems, requires a few extra steps. As Server 2019 is not equipped with WSL2 (''Windows Subsystem for Linux, Version 2''), there are a few extra things to install and set up. === Prerequisites === First of all, install Docker for Desktop ([https://hub.docker.com/editions/community/docker-ce-desktop-windows]) and Git ([https://git-scm.com/downloads Git]). Now open up Powershell as Administrator and enable WSL by entering * Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux After downloading and installing WSL, your Server will prompt you to reboot. After a reboot you need to reconfigure git to read the line feeds from the shell scripts correctly. By Default, the start.sh of EVEMU is wrongly interpreted with DOS Line breaks. To change this, enter * git config --global core.autocrlf input into a Powershell with elevated privileges. Right-click your docker notification icon and hit „Switch to Linux Containers“. This will take a few minutes. === Starting the Server === Continue in Powershell and make sure you’re in the correct folder where you want to deploy EVEMU. Here enter * git clone https://github.com/EvEmu-Project/evemu_Crucible.git Depending on your internet connection and computer performance, this might take a bit. Once its done, enter the cloned folder with * cd evemu_Crucible Now you’re almost done! One last step to get it up and running is to follow up in Powershell with * docker-compose -p evemu up --build -d Wait until its done and your Docker Desktop Window should have both the Database and the Server running. Enjoy playing. 3cccc0ae4bf2692d7cf5234da3e017a25d0edc1c 395 394 2021-04-07T21:13:41Z VDex 11 Added Troubleshooting Section wikitext text/x-wiki === Basic Information === Compiling and Running a Docker Image on Windows Server 2019, while having advantages for Multi-CPU Systems, requires a few extra steps. As Server 2019 is not equipped with WSL2 (''Windows Subsystem for Linux, Version 2''), there are a few extra things to install and set up. === Prerequisites === First of all, install Docker for Desktop ([https://hub.docker.com/editions/community/docker-ce-desktop-windows]) and Git ([https://git-scm.com/downloads Git]). Now open up Powershell as Administrator and enable WSL by entering * Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux After downloading and installing WSL, your Server will prompt you to reboot. After a reboot you need to reconfigure git to read the line feeds from the shell scripts correctly. By Default, the start.sh of EVEMU is wrongly interpreted with DOS Line breaks. To change this, enter * git config --global core.autocrlf input into a Powershell with elevated privileges. Right-click your docker notification icon and hit „Switch to Linux Containers“. This will take a few minutes. === Starting the Server === Continue in Powershell and make sure you’re in the correct folder where you want to deploy EVEMU. Here enter * git clone https://github.com/EvEmu-Project/evemu_Crucible.git Depending on your internet connection and computer performance, this might take a bit. Once its done, enter the cloned folder with * cd evemu_Crucible Now you’re almost done! One last step to get it up and running is to follow up in Powershell with * docker-compose -p evemu up --build -d Wait until its done and your Docker Desktop Window should have both the Database and the Server running. Enjoy playing. === Troubleshooting === Docker is showing "image operating system "linux" cannot be used on this platform". This is a known issue with the latest Docker for Windows Releases as of 8th March 2021. Switch Container format via right click on your docker icon and "Switch to Windows Containers" and back to "Switch to Linux Containers". 718b5542fea38f4423aaf9e6ebb45d82648b97ff Attributes and Effects 0 208 399 2021-04-08T21:16:29Z Allan 3 Created page with "(W.I.P.) All items have Attributes. These define specific properties for the item. 'todo - add examples' Effects most items have effects. these are special attributes that d..." wikitext text/x-wiki (W.I.P.) All items have Attributes. These define specific properties for the item. 'todo - add examples' Effects most items have effects. these are special attributes that define a special function or action this item does. 'todo - add details' d7e7779bdd67b8790c2ca8ac6f85d71bfdb28f24 400 399 2021-04-08T21:17:13Z Allan 3 wikitext text/x-wiki (W.I.P.) All items have Attributes.<br> These define specific properties for the item.<br> [todo - add examples] Effects most items have effects.<br> these are special attributes that define a special function or action this item does.<br> [todo - add details] 14e662213b32ce116586d7f75531796593ea0daf 401 400 2021-04-08T21:17:39Z Allan 3 wikitext text/x-wiki (W.I.P.) == Attributes == All items have Attributes.<br> These define specific properties for the item.<br> [todo - add examples] == Effects == most items have effects.<br> these are special attributes that define a special function or action this item does.<br> [todo - add details] 2bbf91a836de301f9f3fc6b6e2405ab88336e977 Category Module Manager 0 209 404 2021-04-08T21:20:44Z Allan 3 Created page with "the previous module manager class was deleted and rewritten from scratch.<br> i will work on putting information about it here.<br> <br> -Allan" wikitext text/x-wiki the previous module manager class was deleted and rewritten from scratch.<br> i will work on putting information about it here.<br> <br> -Allan 462ddf48a59482962b88928224ecd14f2997b3da Ship Combat.html 0 155 405 198 2021-04-08T21:25:32Z Allan 3 wikitext text/x-wiki bad out of date. this entire page is no longer applicable or correct, except positioning. = <span id="SHIP_AND_OTHER_VESSEL.2FSTRUCTURE_COMBAT_WORK" class="mw-headline"> SHIP AND OTHER VESSEL/STRUCTURE COMBAT WORK </span> = An equation to test LaTeX: <span class="tex2jax_ignore"> &lt;math&gt; \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} &lt;/math&gt; </span> <br /> == <span id="SPACE_OPERATIONS" class="mw-headline"> SPACE OPERATIONS </span> == * Accurate Positioning: since we cannot emulate destiny ship movement calculations exactly we mave have to force a '/syncloc' on every ship object (exclude drones) at some interval of destiny ticks with the first interval counting ticks from the moment the DestinyManager instance for that ship was created * Collisions: we need to implement purely elastic 3D collisions that conserve momentum on both parties involved and ONLY with ships. The collision should calculate a vector of travel along which a GoToDirection() action is forced with a speed calculated from the conservation of momentum. The previous active ship movement should be queued as the collision is detected then on the next tick after the collision's GoToDirection is ordered, thae queued action should immediately resume. At this time, to ensure accurate positioning of both ships involved, issue a '/synloc' on both ships. ** Collision Detection: The only way to detect collisions is to query distance to and radius of every collidable object in the current bubble, on every destiny tick. Then if the result of distance is &lt;= to other object radius plus this ship's radius then a collision is detected. ** Do all this and see how bad the /syncloc results are after a bunch of different collisions at different speeds for both ships. Also, evaluate the increase in load on the cpu by the server. <br /> === <span id="Sources" class="mw-headline"> Sources </span> === * [http://wiki.eveonline.com/en/wiki/Aligning Aligning] * [http://eve.allakhazam.com/wiki/EVE_Guide_Top_Speed_Calculation_Guide Max Velocity] == <span id="TARGETING" class="mw-headline"> TARGETING </span> == * Initiating a Target Lock: Evemu should support the following aspects of targeting: ** Attempt to Lock Target - receive packet, check max targeting distance attribute of ship, and if within that distance to target, proceed to lock target, send target lock packets to aggressor and targeted ship clients ** Unlock Target - when requested by aggressor, this should happen immediately *** Loss of Target Lock **** when a target travels beyond the max targeting range of the aggressor, that target's lock will be lost immediately **** when the aggressor jumps a gate, when the aggressor docks in a station, when the aggressor becomes jammed by another ship, ALL targets' locks will be lost <br /> == <span id="DAMAGE" class="mw-headline"> DAMAGE </span> == * we need to make application of damage to ships, drones, modules, and structures work ** Damage.cpp file holds all the work so far. Should this be separated out to each class' cpp file? *** Adequately document the procedure for applying damage to a target object *** Tracking attributes and sensor attributes must be used to determine the probability that a target is actually hit with a weapon and the weapon and charge attributes must be used to determine how much damage points and which of the four types are actually applied to the target object <br /> == <span id="EFFECTS" class="mw-headline"> EFFECTS </span> == * we need to consider how effects are applied to a target object since no damage is involved in this process, only changes in either ship attributes or ship state (speed, warp ability, cloak, others?) ** we need a message passing mechanism that can pass information on an effect and really a message that contains an array of 1 or more effects that an aggressor ship is applying to a target object *** INFO: **** aggressor shipID **** effectID or pointer to effect class for that effectID **** specific data regarding how said effect applies to target (list of attribute modifiers?) <br /> == <span id="DEATH" class="mw-headline"> DEATH </span> == * we need to make ship, drone, structure explosions work in the client ** when deemed to happen, the item should be destroyed in memory and database along with its inventory but before that is done, the wreck should be spawned and its inventory filled with the randomly selected list of inventory items for the 'loot drop' *** how do we know which wreck ID matches the ship, structure that was destroyed? **** there is no linkage of these typeIDs in the database, so we'll have to create them in our own database table. there are 279 entries in 'invTypes' with 'wreck' in description.. not that bad :/ ** Kill mails: we need to create a system that creates properly formatted kill mails and delivers them to the players and i imagine they are all stored in the database too so they can be retreived via API keys for out-of-game [[Out_of_Game_Player_Tools.html#EVEmu_Killboard|killboards]] * ** Capsule death: when capsule is destroyed, NO wreck is spawned, but a corpse with char's name IS then the character whose capsule was destroyed should be moved into a new clone (and capsule with a noob ship) into the station last selected for medical clone, set clone as grade Alpha *** we need clone station selection AND clone upgrades to be working to support capsule death b17e20634d18070f57525b461cdafe5e0a70e9a5 406 405 2021-04-08T21:25:47Z Allan 3 wikitext text/x-wiki bad out of date. this entire page is no longer applicable or correct, except positioning. <br> <br> = <span id="SHIP_AND_OTHER_VESSEL.2FSTRUCTURE_COMBAT_WORK" class="mw-headline"> SHIP AND OTHER VESSEL/STRUCTURE COMBAT WORK </span> = An equation to test LaTeX: <span class="tex2jax_ignore"> &lt;math&gt; \operatorname{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt = \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}} &lt;/math&gt; </span> <br /> == <span id="SPACE_OPERATIONS" class="mw-headline"> SPACE OPERATIONS </span> == * Accurate Positioning: since we cannot emulate destiny ship movement calculations exactly we mave have to force a '/syncloc' on every ship object (exclude drones) at some interval of destiny ticks with the first interval counting ticks from the moment the DestinyManager instance for that ship was created * Collisions: we need to implement purely elastic 3D collisions that conserve momentum on both parties involved and ONLY with ships. The collision should calculate a vector of travel along which a GoToDirection() action is forced with a speed calculated from the conservation of momentum. The previous active ship movement should be queued as the collision is detected then on the next tick after the collision's GoToDirection is ordered, thae queued action should immediately resume. At this time, to ensure accurate positioning of both ships involved, issue a '/synloc' on both ships. ** Collision Detection: The only way to detect collisions is to query distance to and radius of every collidable object in the current bubble, on every destiny tick. Then if the result of distance is &lt;= to other object radius plus this ship's radius then a collision is detected. ** Do all this and see how bad the /syncloc results are after a bunch of different collisions at different speeds for both ships. Also, evaluate the increase in load on the cpu by the server. <br /> === <span id="Sources" class="mw-headline"> Sources </span> === * [http://wiki.eveonline.com/en/wiki/Aligning Aligning] * [http://eve.allakhazam.com/wiki/EVE_Guide_Top_Speed_Calculation_Guide Max Velocity] == <span id="TARGETING" class="mw-headline"> TARGETING </span> == * Initiating a Target Lock: Evemu should support the following aspects of targeting: ** Attempt to Lock Target - receive packet, check max targeting distance attribute of ship, and if within that distance to target, proceed to lock target, send target lock packets to aggressor and targeted ship clients ** Unlock Target - when requested by aggressor, this should happen immediately *** Loss of Target Lock **** when a target travels beyond the max targeting range of the aggressor, that target's lock will be lost immediately **** when the aggressor jumps a gate, when the aggressor docks in a station, when the aggressor becomes jammed by another ship, ALL targets' locks will be lost <br /> == <span id="DAMAGE" class="mw-headline"> DAMAGE </span> == * we need to make application of damage to ships, drones, modules, and structures work ** Damage.cpp file holds all the work so far. Should this be separated out to each class' cpp file? *** Adequately document the procedure for applying damage to a target object *** Tracking attributes and sensor attributes must be used to determine the probability that a target is actually hit with a weapon and the weapon and charge attributes must be used to determine how much damage points and which of the four types are actually applied to the target object <br /> == <span id="EFFECTS" class="mw-headline"> EFFECTS </span> == * we need to consider how effects are applied to a target object since no damage is involved in this process, only changes in either ship attributes or ship state (speed, warp ability, cloak, others?) ** we need a message passing mechanism that can pass information on an effect and really a message that contains an array of 1 or more effects that an aggressor ship is applying to a target object *** INFO: **** aggressor shipID **** effectID or pointer to effect class for that effectID **** specific data regarding how said effect applies to target (list of attribute modifiers?) <br /> == <span id="DEATH" class="mw-headline"> DEATH </span> == * we need to make ship, drone, structure explosions work in the client ** when deemed to happen, the item should be destroyed in memory and database along with its inventory but before that is done, the wreck should be spawned and its inventory filled with the randomly selected list of inventory items for the 'loot drop' *** how do we know which wreck ID matches the ship, structure that was destroyed? **** there is no linkage of these typeIDs in the database, so we'll have to create them in our own database table. there are 279 entries in 'invTypes' with 'wreck' in description.. not that bad :/ ** Kill mails: we need to create a system that creates properly formatted kill mails and delivers them to the players and i imagine they are all stored in the database too so they can be retreived via API keys for out-of-game [[Out_of_Game_Player_Tools.html#EVEmu_Killboard|killboards]] * ** Capsule death: when capsule is destroyed, NO wreck is spawned, but a corpse with char's name IS then the character whose capsule was destroyed should be moved into a new clone (and capsule with a noob ship) into the station last selected for medical clone, set clone as grade Alpha *** we need clone station selection AND clone upgrades to be working to support capsule death f342382c576052b45b145265dec0dad050857b73 EVEmu-SDK 0 210 409 2021-04-18T17:17:54Z Jdhirst 10 Created page with "TBA" wikitext text/x-wiki TBA ae50ce81c0ab15346851715818b855eed68b0618 Main Page/EVEmu Documentation Links 0 16 410 376 2021-04-20T06:40:37Z Jdhirst 10 Added Evelopedia link from wayback machine as its a very useful reference for developers trying to recreate mechanics. wikitext text/x-wiki '''Use these links if you want to learn how game features are implemented on EVEmu's server and learn about the backend framework that the server needs to do its job:''' * [[:Category:Users Guide|User's Guide]] * [[:Category:Game Operation|Game Operation]] (update in progress) * [[:Category:EVE Database|EVE Database]] (needs update) * [[:Category:EVEmu API Server|EVEmu API Server]] * [https://web.archive.org/web/20120408195546/http://wiki.eveonline.com:80/en/wiki/Main_Page EVElopedia] (from WayBack Machine, April 2012, latest Crucible data) * 97f49ad85760336a08a12ebc1ecc968034889b18 New Users Guide 0 204 417 407 2021-05-05T07:27:26Z Jdhirst 10 Removes references to client software. wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a VPS (Virtual Private Server) to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. == Setting up your VPS == For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. ==== <u>Getting your VPS</u> ==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== * [https://aws.amazon.com/ Amazon Web Services (AWS)] * [https://www.linode.com/ Linode] * [https://www.digitalocean.com/products/droplets/ Digital Ocean] * [https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ==== <u>Logging into your VPS</u> ==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. ===== Windows ===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ====== Password Login ====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ====== Key Based Login ====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. ===== Linux ===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. == Preparing and Launching your EVEmu Server (Docker) == ==== Setting up your VPS for EVEmu ==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ==== Launching the EVEmu Server ==== You are really close to being able to launch EVEmu. Actually you're on the last step. To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server (Source)== ==== Server Compilation ==== # Run <code>sudo apt-get update && sudo apt-get upgrade</code> # Run <code>sudo apt-get install build-essential g++ cmake git</code> # Run <code>sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql</code> # Run <code>sudo apt-get install zlib1g-dev zlib1g-dbg</code> # Run <code>sudo apt-get install libboost1.54</code> # Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible</code> # Run <code>cd evemu_Crucible</code> # Run <code>mkdir build</code> # Run <code>cd build</code> # Run <code>cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist ..</code> # Run <code>make -j(Number of cores you have available)</code> # Run <code>make install</code> ==== Database Setup ==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' #Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell via <code>mysql -u root -p</code> and input the following: ## Note: This will prompt you for the password you set in the Previous Step create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows ##Note: You will have to edit the install.sh or install.bat files to reflect the password you set in the previous step. ==== Final Steps: ==== #Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc #Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. #Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. #To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. == Client Setup == '''You must have EVE Online Client 360229 to connect to the server. Access to this client is not provided by the EVEmu Project. <u>Do not ask.</u>''' In order to patch the client and connect to the server, perform the following: (You must have <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> in the same directory.) # Double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. # Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ## Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://github.com/stschake/blue_patcher here] (this is an external GitHub repository not affiliated with the EVEmu Project)''' # Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> # Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' # Click '''yes''' on the prompt. # Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ## Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ## Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ## Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ## Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> # Save your <code>common.ini</code> file and close it # Go back a directory to the EVE directory and edit the <code>start.ini</code> file. # Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it # Navigate to your desktop. Here should be a Icon named <code>EVE</code> # Right click this icon and click properties. # Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ## Note: This is assuming that you haven't changed the default installation directory # Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! '''Notice:''' There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs. See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 93af1d26e6fd6d655545059f3c9f7e7fea158033 1999 417 2021-09-06T08:32:07Z Jdhirst 10 /* Preparing and Launching your EVEmu Server (Docker) */ wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a Linux system to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. While it is possible to run EVEmu under Docker for Windows, it is not recommended. '''Linux is the only OS which is supported / maintained by the development team.''' ==Setting up your VPS== For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. Please see this page on setting up your VPS: [[VPS Setup Guide]] ==Preparing and Launching your EVEmu Server with Docker (RECOMMENDED)== ====Setting up your system for EVEmu==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ====Launching the EVEmu Server==== You are really close to being able to launch EVEmu. Actually you're on the last step. First, inspect the <code>docker-compose.yml</code> file. There are a few things that can be changed here which may help with customising your installation. This environment variable will enable the use of gdb within the container for debugging purposes. - RUN_WITH_GDB=FALSE #Set to TRUE to run evemu with gdb automatically Additionally, you can configure the automatic seeding of market data using the following environment variables: - SEED_MARKET=FALSE # Set to TRUE to seed the market when the server starts for the first time - SEED_SATURATION=80 # Set saturation level of seed - SEED_REGIONS=Derelik,The Citadel,The Forge # Define regions to be seeded To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. Configuration will be stored within the evemu_config volume. To make changes to eve-server.xml, you must go to this volume location and modify it there. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server Manually (NOT RECOMMENDED)== ==== Server Compilation==== We have confirmed both Fedora 33 and Ubuntu 20.04 LTS work for installing EVEmu from source. The Docker image is based upon Fedora 33 so this will what the code is tested against. ===== Installing Prerequisites on Fedora ===== dnf groupinstall -y "Development Tools" && dnf install -y cmake git zlib-devel mariadb-devel boost-devel tinyxml-devel utf8cpp-devel mariadb shadow-utils gdb ===== Installing Prerequisites on Ubuntu ===== sudo apt-get update && sudo apt upgrade && sudo apt install build-essential g++ cmake git libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql zlib1g-dev zlib1g-dbg libboost1.54 ===== Compilation ===== git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ====Database Setup==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB For Fedora: sudo dnf install -y mariadb-server sudo systemctl enable --now mariadb sudo mysql_secure_installation For Ubuntu: sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell via <code>mysql -u root -p</code> and input the following: ##Note: This will prompt you for the password you set in the Previous Step create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run '''./get_evedbtool.sh'''. This will download the latest version of EVEDBTool to your system. If you are using a non-x86_64 architecture, you may build this tool from source. The tool is written completely in Golang so can be built on most systems such as x86_64 and aarch64. Source is available here: https://github.com/evemu-project/evedbtool # Now run '''./evedbtool'''. This will cause the tool to generate a new '''evedb.yaml''' file in the current directory. '''Layout of evedb.yaml''' base-dir: base db-database: evemu db-host: 127.0.0.1 db-pass: evemu db-port: "3306" db-user: evemu log-level: Info migrations-dir: migrations seed-regions: - Derelik seed-saturation: 80 Edit this file to contain your database credentials. Optionally, you can also add regions you wish to seed with market orders and the saturation of which to do so. '''Installing the Tables:''' # Run '''./evedbtool install''' to install the base database and all of the latest migrations. (when updating EVEmu, you'll need to do '''./evedbtool up''' to apply any migrations) # Optional: Run '''./evedbtool seed''' to seed the market with orders to regions you configured in evedb.yaml. ==== Final Steps: ==== Open eve-server.xml which if you did everything right, should be in '''build/dist/etc.''' Additionally, make sure '''log.ini''' is also available in '''build/dist/etc''' Scroll towards the bottom of the file, to the database connection info, change to settings to match your database credentials. <database> <host>db</host><!-- must be 'localhost' for socket connection --> <username>evemu</username> <password>evemu</password> <db>evemu</db> <port>3306</port><!-- 3306 default --> <ssl>false</ssl><!-- bool enable ssl for db connection (NOTE: NOT coded. DO NOT USE) -not needed when using socket under linux--> <compress>false</compress><!-- bool compressed protocol for client server communication - not sure if needed. --> <useSocket>false</useSocket><!-- bool use socket connection instead of port (MUST be local) (SIGPIPE hits on debug code) --> <autoReconnect>true</autoReconnect><!-- bool enable auto Reconnect on lost connection --> <dbTimeout>2</dbTimeout><!-- seconds timeout value for db response, in seconds default: 2s **NOT USED** --> <pingTime>10</pingTime><!-- minutes ping db every x minutes default: 10m **NOT USED** hard-coded to 10m --> </database> Next, create the following directories: build/dist/logs build/dist/image_cache build/dist/server_cache These directories can optionally be defined in '''eve-server.xml''' here: <files> <logDir>../logs/</logDir> <logSettings>../etc/log.ini</logSettings> <cacheDir>../server_cache/</cacheDir> <imageDir>../image_cache/</imageDir> </files> Now, configure your image server (must be accessible to clients). If you do not do this, player images, corporation images, and alliance images '''will not''' be uploaded. <net> <port>26000</port> <imageServer>127.0.0.1</imageServer> <imageServerPort>26001</imageServerPort> </net> #To finally run your EVEmu server, navigate to the '''build/dist/bin''' folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Client Setup== '''You must have EVE Online Client 360229 to connect to the server. Access to this client is not provided by the EVEmu Project. <u>Do not ask.</u>''' In order to patch the client and connect to the server, perform the following: (You must have <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> in the same directory.) #Double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. #Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ##Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://github.com/stschake/blue_patcher here] (this is an external GitHub repository not affiliated with the EVEmu Project)''' #Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> #Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' #Click '''yes''' on the prompt. #Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ##Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ##Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ##Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ##Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> #Save your <code>common.ini</code> file and close it #Go back a directory to the EVE directory and edit the <code>start.ini</code> file. #Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it #Navigate to your desktop. Here should be a Icon named <code>EVE</code> #Right click this icon and click properties. #Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ##Note: This is assuming that you haven't changed the default installation directory #Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! '''Notice:''' There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs. See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 65bf7e6389167cadd2ee19911e6ace760d7ed0ab 2000 1999 2021-09-06T08:38:40Z Jdhirst 10 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a Linux system to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. While it is possible to run EVEmu under Docker for Windows, it is not recommended. '''Linux is the only OS which is supported / maintained by the development team.''' ==Setting up your VPS== For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. Please see this page on setting up your VPS: [[VPS Setup Guide]] ==Preparing and Launching your EVEmu Server with Docker (RECOMMENDED)== ====Setting up your system for EVEmu==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ====Launching the EVEmu Server==== You are really close to being able to launch EVEmu. Actually you're on the last step. First, inspect the <code>docker-compose.yml</code> file. There are a few things that can be changed here which may help with customising your installation. This environment variable will enable the use of gdb within the container for debugging purposes. - RUN_WITH_GDB=FALSE #Set to TRUE to run evemu with gdb automatically Additionally, you can configure the automatic seeding of market data using the following environment variables: - SEED_MARKET=FALSE # Set to TRUE to seed the market when the server starts for the first time - SEED_SATURATION=80 # Set saturation level of seed - SEED_REGIONS=Derelik,The Citadel,The Forge # Define regions to be seeded To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. Configuration will be stored within the evemu_config volume. To make changes to eve-server.xml, you must go to this volume location and modify it there. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server Manually (NOT RECOMMENDED)== ==== Server Compilation==== We have confirmed both Fedora 33 and Ubuntu 20.04 LTS work for installing EVEmu from source. The Docker image is based upon Fedora 33 so this will what the code is tested against. ===== Installing Prerequisites on Fedora ===== dnf groupinstall -y "Development Tools" && dnf install -y cmake git zlib-devel mariadb-devel boost-devel tinyxml-devel utf8cpp-devel mariadb shadow-utils gdb ===== Installing Prerequisites on Ubuntu ===== sudo apt-get update && sudo apt upgrade && sudo apt install build-essential g++ cmake git libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql zlib1g-dev zlib1g-dbg libboost1.54 ===== Compilation ===== git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ====Database Setup==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB For Fedora: sudo dnf install -y mariadb-server sudo systemctl enable --now mariadb sudo mysql_secure_installation For Ubuntu: sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell via <code>mysql -u root -p</code> and input the following: ##Note: This will prompt you for the password you set in the Previous Step create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run '''./get_evedbtool.sh'''. This will download the latest version of EVEDBTool to your system. If you are using a non-x86_64 architecture, you may build this tool from source. The tool is written completely in Golang so can be built on most systems such as x86_64 and aarch64. Source is available here: https://github.com/evemu-project/evedbtool # Now run '''./evedbtool'''. This will cause the tool to generate a new '''evedb.yaml''' file in the current directory. '''Layout of evedb.yaml''' base-dir: base db-database: evemu db-host: 127.0.0.1 db-pass: evemu db-port: "3306" db-user: evemu log-level: Info migrations-dir: migrations seed-regions: - Derelik seed-saturation: 80 Edit this file to contain your database credentials. Optionally, you can also add regions you wish to seed with market orders and the saturation of which to do so. '''Installing the Tables:''' # Run '''./evedbtool install''' to install the base database and all of the latest migrations. (when updating EVEmu, you'll need to do '''./evedbtool up''' to apply any migrations) # Optional: Run '''./evedbtool seed''' to seed the market with orders to regions you configured in evedb.yaml. ==== Final Steps: ==== Open eve-server.xml which if you did everything right, should be in '''build/dist/etc.''' Additionally, make sure '''log.ini''' is also available in '''build/dist/etc''' Scroll towards the bottom of the file, to the database connection info, change to settings to match your database credentials. <database> <host>db</host><!-- must be 'localhost' for socket connection --> <username>evemu</username> <password>evemu</password> <db>evemu</db> <port>3306</port><!-- 3306 default --> <ssl>false</ssl><!-- bool enable ssl for db connection (NOTE: NOT coded. DO NOT USE) -not needed when using socket under linux--> <compress>false</compress><!-- bool compressed protocol for client server communication - not sure if needed. --> <useSocket>false</useSocket><!-- bool use socket connection instead of port (MUST be local) (SIGPIPE hits on debug code) --> <autoReconnect>true</autoReconnect><!-- bool enable auto Reconnect on lost connection --> <dbTimeout>2</dbTimeout><!-- seconds timeout value for db response, in seconds default: 2s **NOT USED** --> <pingTime>10</pingTime><!-- minutes ping db every x minutes default: 10m **NOT USED** hard-coded to 10m --> </database> Next, create the following directories: build/dist/logs build/dist/image_cache build/dist/server_cache These directories can optionally be defined in '''eve-server.xml''' here: <files> <logDir>../logs/</logDir> <logSettings>../etc/log.ini</logSettings> <cacheDir>../server_cache/</cacheDir> <imageDir>../image_cache/</imageDir> </files> Now, configure your image server (must be accessible to clients). If you do not do this, player images, corporation images, and alliance images '''will not''' be uploaded. <net> <port>26000</port> <imageServer>127.0.0.1</imageServer> <imageServerPort>26001</imageServerPort> </net> #To finally run your EVEmu server, navigate to the '''build/dist/bin''' folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Client Setup== '''You must have EVE Online Client 360229 to connect to the server. Access to this client is not provided by the EVEmu Project. <u>Do not ask.</u>''' In order to patch the client and connect to the server, perform the following: (You must have <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> in the same directory.) #Double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. #Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ##Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://github.com/stschake/blue_patcher here] (this is an external GitHub repository not affiliated with the EVEmu Project)''' #Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> #Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' #Click '''yes''' on the prompt. #Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ##Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ##Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ##Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ##Your <code>blue.dll</code> should now be patched. # Edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> #Save your <code>common.ini</code> file and close it #Go back a directory to the EVE directory and edit the <code>start.ini</code> file. #Replace <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it #Navigate to your desktop. Here should be a Icon named <code>EVE</code> #Right click this icon and click properties. #Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ##Note: This is assuming that you haven't changed the default installation directory #Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! '''Notice:''' There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs. See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 718075cc3c247f0adc816af2eceab3376620fb28 2132 2000 2021-09-11T12:13:12Z RandomPlayer 3539 Correct steps and handle the fact lastest version of BluePatcher doesnt work for 360229 wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a Linux system to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. While it is possible to run EVEmu under Docker for Windows, it is not recommended. '''Linux is the only OS which is supported / maintained by the development team.''' ==Setting up your VPS== For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. Please see this page on setting up your VPS: [[VPS Setup Guide]] ==Preparing and Launching your EVEmu Server with Docker (RECOMMENDED)== ====Setting up your system for EVEmu==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ====Launching the EVEmu Server==== You are really close to being able to launch EVEmu. Actually you're on the last step. First, inspect the <code>docker-compose.yml</code> file. There are a few things that can be changed here which may help with customising your installation. This environment variable will enable the use of gdb within the container for debugging purposes. - RUN_WITH_GDB=FALSE #Set to TRUE to run evemu with gdb automatically Additionally, you can configure the automatic seeding of market data using the following environment variables: - SEED_MARKET=FALSE # Set to TRUE to seed the market when the server starts for the first time - SEED_SATURATION=80 # Set saturation level of seed - SEED_REGIONS=Derelik,The Citadel,The Forge # Define regions to be seeded To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. Configuration will be stored within the evemu_config volume. To make changes to eve-server.xml, you must go to this volume location and modify it there. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server Manually (NOT RECOMMENDED)== ==== Server Compilation==== We have confirmed both Fedora 33 and Ubuntu 20.04 LTS work for installing EVEmu from source. The Docker image is based upon Fedora 33 so this will what the code is tested against. ===== Installing Prerequisites on Fedora ===== dnf groupinstall -y "Development Tools" && dnf install -y cmake git zlib-devel mariadb-devel boost-devel tinyxml-devel utf8cpp-devel mariadb shadow-utils gdb ===== Installing Prerequisites on Ubuntu ===== sudo apt-get update && sudo apt upgrade && sudo apt install build-essential g++ cmake git libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql zlib1g-dev zlib1g-dbg libboost1.54 ===== Compilation ===== git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ====Database Setup==== '''NOTE:''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB For Fedora: sudo dnf install -y mariadb-server sudo systemctl enable --now mariadb sudo mysql_secure_installation For Ubuntu: sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell via <code>mysql -u root -p</code> and input the following: ##Note: This will prompt you for the password you set in the Previous Step create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run '''./get_evedbtool.sh'''. This will download the latest version of EVEDBTool to your system. If you are using a non-x86_64 architecture, you may build this tool from source. The tool is written completely in Golang so can be built on most systems such as x86_64 and aarch64. Source is available here: https://github.com/evemu-project/evedbtool # Now run '''./evedbtool'''. This will cause the tool to generate a new '''evedb.yaml''' file in the current directory. '''Layout of evedb.yaml''' base-dir: base db-database: evemu db-host: 127.0.0.1 db-pass: evemu db-port: "3306" db-user: evemu log-level: Info migrations-dir: migrations seed-regions: - Derelik seed-saturation: 80 Edit this file to contain your database credentials. Optionally, you can also add regions you wish to seed with market orders and the saturation of which to do so. '''Installing the Tables:''' # Run '''./evedbtool install''' to install the base database and all of the latest migrations. (when updating EVEmu, you'll need to do '''./evedbtool up''' to apply any migrations) # Optional: Run '''./evedbtool seed''' to seed the market with orders to regions you configured in evedb.yaml. ==== Final Steps: ==== Open eve-server.xml which if you did everything right, should be in '''build/dist/etc.''' Additionally, make sure '''log.ini''' is also available in '''build/dist/etc''' Scroll towards the bottom of the file, to the database connection info, change to settings to match your database credentials. <database> <host>db</host><!-- must be 'localhost' for socket connection --> <username>evemu</username> <password>evemu</password> <db>evemu</db> <port>3306</port><!-- 3306 default --> <ssl>false</ssl><!-- bool enable ssl for db connection (NOTE: NOT coded. DO NOT USE) -not needed when using socket under linux--> <compress>false</compress><!-- bool compressed protocol for client server communication - not sure if needed. --> <useSocket>false</useSocket><!-- bool use socket connection instead of port (MUST be local) (SIGPIPE hits on debug code) --> <autoReconnect>true</autoReconnect><!-- bool enable auto Reconnect on lost connection --> <dbTimeout>2</dbTimeout><!-- seconds timeout value for db response, in seconds default: 2s **NOT USED** --> <pingTime>10</pingTime><!-- minutes ping db every x minutes default: 10m **NOT USED** hard-coded to 10m --> </database> Next, create the following directories: build/dist/logs build/dist/image_cache build/dist/server_cache These directories can optionally be defined in '''eve-server.xml''' here: <files> <logDir>../logs/</logDir> <logSettings>../etc/log.ini</logSettings> <cacheDir>../server_cache/</cacheDir> <imageDir>../image_cache/</imageDir> </files> Now, configure your image server (must be accessible to clients). If you do not do this, player images, corporation images, and alliance images '''will not''' be uploaded. <net> <port>26000</port> <imageServer>127.0.0.1</imageServer> <imageServerPort>26001</imageServerPort> </net> #To finally run your EVEmu server, navigate to the '''build/dist/bin''' folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Client Setup== '''You must have EVE Online Client 360229 to connect to the server. Access to this client is not provided by the EVEmu Project. <u>Do not ask.</u>''' In order to patch the client and connect to the server, perform the following: (You must have <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> in the same directory.) #Double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. #Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ##Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://github.com/stschake/blue_patcher here] (this is an external GitHub repository not affiliated with the EVEmu Project)''' #Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> #Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' #Click '''yes''' on the prompt. #Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ##Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ##Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ##Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ##Your <code>blue.dll</code> should now be patched. If that doesn't work you may have downloaded a patch for a newer version. Try downloading the specific exe for 360229 [https://github.com/stschake/blue_patcher/blob/f16ba3ceb3c439fd42f5b3fe0abf241ca60828bc/blue_patcher.exe from here]. # Go back a directory to the EVE directory and edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> #Save your <code>common.ini</code> file and close it. #Then edit the <code>start.ini</code> file by replacing <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it. #Navigate to your desktop. Here should be a Icon named <code>EVE</code> #Right click this icon and click properties. #Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ##Note: This is assuming that you haven't changed the default installation directory #Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! '''Notice:''' There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs. See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. a8fbdb60371de11fc9bb1cda04ca135a960bc283 2942 2132 2022-04-05T09:58:16Z Jdhirst 10 /* Database Setup */ wikitext text/x-wiki == Introduction == Welcome to EVEmu! This guide will help you go through the steps of setting up a Linux system to run EVEmu and launching the EVEmu Server. This guide is directed towards users with very little technical experience who want to test EVEmu or want to take a deep dive into server development. For any questions not covered in this guide you can contact us on [[EVEmu Connect|Discord or Forums]]. While it is possible to run EVEmu under Docker for Windows, it is not recommended. '''Linux is the only OS which is supported / maintained by the development team.''' ==Setting up your VPS== For first time users setting up a VPS can be tricky business. Don't worry it's quite easy with some simple instructions. Please see this page on setting up your VPS: [[VPS Setup Guide]] ==Preparing and Launching your EVEmu Server with Docker (RECOMMENDED)== ====Setting up your system for EVEmu==== Setting up an instance for EVEmu is quite simple with the inclusion of Docker into the build process. To start with we need to install Docker. Docker is a containerization engine that separates programs into items known as containers. These containers are separate from the root operating system and help reduce conflicts with other programs. To install Docker run <code>sudo curl -sSL <nowiki>https://get.docker.com/</nowiki> | CHANNEL=stable bash</code> in your terminal window. Wait for this to complete. Once this is done you now have docker installed on your server. Next you need to install a program called docker-compose. This program just allows for easier access to the Docker Engine and will be used with actually launching the EVEmu Server. You can install it by running <code>sudo apt install -y docker-compose</code> . Once this is done you are real close to being ready to launch the server. All thats left is to get the files. Run <code>git clone https://github.com/EvEmu-Project/evemu_Crucible.git</code>. This will download the files to your instance for use. Next run <code>cd evemu_Crucible</code>. This will put you within the server directory. ====Launching the EVEmu Server==== You are really close to being able to launch EVEmu. Actually you're on the last step. First, inspect the <code>docker-compose.yml</code> file. There are a few things that can be changed here which may help with customising your installation. This environment variable will enable the use of gdb within the container for debugging purposes. - RUN_WITH_GDB=FALSE #Set to TRUE to run evemu with gdb automatically Additionally, you can configure the automatic seeding of market data using the following environment variables: - SEED_MARKET=FALSE # Set to TRUE to seed the market when the server starts for the first time - SEED_SATURATION=80 # Set saturation level of seed - SEED_REGIONS=Derelik,The Citadel,The Forge # Define regions to be seeded To launch your server run <code>sudo docker-compose -p evemu up --build -d</code>. Configuration will be stored within the evemu_config volume. To make changes to eve-server.xml, you must go to this volume location and modify it there. A little bit of what this is doing. This command is downloading the dependencies needed to compile the server, and then actually compiling it into a working binary. It will then use this binary to run the '''evemu-server''' container. This command is also downloading the needed files for the database, and compiling those into the MariaDB MySQL database that EVEmu stores all of its data in. This will take time to complete anywhere upwards of five minutes depending on the specs of the server that you are running. If you encounter any issues while running this command or the server fails to compile please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Preparing and Launching your EVEmu Server Manually (NOT RECOMMENDED)== ==== Server Compilation==== We have confirmed both Fedora 33 and Ubuntu 20.04 LTS work for installing EVEmu from source. The Docker image is based upon Fedora 33 so this will what the code is tested against. ===== Installing Prerequisites on Fedora ===== dnf groupinstall -y "Development Tools" && dnf install -y cmake git zlib-devel mariadb-devel boost-devel tinyxml-devel utf8cpp-devel mariadb shadow-utils gdb ===== Installing Prerequisites on Ubuntu ===== sudo apt-get update && sudo apt upgrade && sudo apt install build-essential g++ cmake git libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql zlib1g-dev zlib1g-dbg libboost1.54 ===== Compilation ===== git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install ====Database Setup==== '''NOTE: MySQL is NOT SUPPORTED. Please use MariaDB 10.4 or later. Earlier versions may encounter issues.''' *''%devRoot%'' is where the development files are located. *These may be the same location but that is not necessary. #Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB For Fedora: sudo dnf install -y mariadb-server sudo systemctl enable --now mariadb sudo mysql_secure_installation For Ubuntu: sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell via <code>mysql -u root -p</code> and input the following: ##Note: This will prompt you for the password you set in the Previous Step create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; #In the same SQL directory, run '''./get_evedbtool.sh'''. This will download the latest version of EVEDBTool to your system. If you are using a non-x86_64 architecture, you may build this tool from source. The tool is written completely in Golang so can be built on most systems such as x86_64 and aarch64. Source is available here: https://github.com/evemu-project/evedbtool # Now run '''./evedbtool'''. This will cause the tool to generate a new '''evedb.yaml''' file in the current directory. '''Layout of evedb.yaml''' base-dir: base db-database: evemu db-host: 127.0.0.1 db-pass: evemu db-port: "3306" db-user: evemu log-level: Info migrations-dir: migrations seed-regions: - Derelik seed-saturation: 80 Edit this file to contain your database credentials. Optionally, you can also add regions you wish to seed with market orders and the saturation of which to do so. '''Installing the Tables:''' # Run '''./evedbtool install''' to install the base database and all of the latest migrations. (when updating EVEmu, you'll need to do '''./evedbtool up''' to apply any migrations) # Optional: Run '''./evedbtool seed''' to seed the market with orders to regions you configured in evedb.yaml. ==== Final Steps: ==== Open eve-server.xml which if you did everything right, should be in '''build/dist/etc.''' Additionally, make sure '''log.ini''' is also available in '''build/dist/etc''' Scroll towards the bottom of the file, to the database connection info, change to settings to match your database credentials. <database> <host>db</host><!-- must be 'localhost' for socket connection --> <username>evemu</username> <password>evemu</password> <db>evemu</db> <port>3306</port><!-- 3306 default --> <ssl>false</ssl><!-- bool enable ssl for db connection (NOTE: NOT coded. DO NOT USE) -not needed when using socket under linux--> <compress>false</compress><!-- bool compressed protocol for client server communication - not sure if needed. --> <useSocket>false</useSocket><!-- bool use socket connection instead of port (MUST be local) (SIGPIPE hits on debug code) --> <autoReconnect>true</autoReconnect><!-- bool enable auto Reconnect on lost connection --> <dbTimeout>2</dbTimeout><!-- seconds timeout value for db response, in seconds default: 2s **NOT USED** --> <pingTime>10</pingTime><!-- minutes ping db every x minutes default: 10m **NOT USED** hard-coded to 10m --> </database> Next, create the following directories: build/dist/logs build/dist/image_cache build/dist/server_cache These directories can optionally be defined in '''eve-server.xml''' here: <files> <logDir>../logs/</logDir> <logSettings>../etc/log.ini</logSettings> <cacheDir>../server_cache/</cacheDir> <imageDir>../image_cache/</imageDir> </files> Now, configure your image server (must be accessible to clients). If you do not do this, player images, corporation images, and alliance images '''will not''' be uploaded. <net> <port>26000</port> <imageServer>127.0.0.1</imageServer> <imageServerPort>26001</imageServerPort> </net> #To finally run your EVEmu server, navigate to the '''build/dist/bin''' folder and run the eve-server executable. ./eve-server If you have any issues or concerns please contact us on our [[EVEmu Connect|Discord or Forums.]] Once this process is done you now have a fully working EVEmu server. ==Client Setup== '''You must have EVE Online Client 360229 to connect to the server. Access to this client is not provided by the EVEmu Project. <u>Do not ask.</u>''' In order to patch the client and connect to the server, perform the following: (You must have <code>EVE_Online_Installer_360229.exe</code>, <code>eveonline_360229_1of2.7z</code>, <code>eveonline_360229_2of2.7z</code> in the same directory.) #Double click the <code>EVE_Online_Installer_360229.exe</code> file # Go through the setup, This will take a few minutes to complete. #Once this is done '''Uncheck the "Run Eve Online" box on the final screen.''' ##Note: If you do not uncheck this box your client will reach out to CCP and auto update itself to the latest version which is not compatible with the EVEmu server. '''Get a copy of the blue patcher [https://github.com/stschake/blue_patcher here] (this is an external GitHub repository not affiliated with the EVEmu Project)''' #Copy the <code>BlueAutoPatcher</code> file to your EVE Client Directory. This is commonly found under <code>C:\Program Files (x86)\CCP\EVE\bin</code> #Right click the <code>BlueAutoPatcher</code> and click '''Run as Administrator''' #Click '''yes''' on the prompt. #Unless you stored EVE in a special directory the default settings should work fine. Click '''Patch''' ## Note: Sometimes the above steps will not work. To resolve this copy the <code>blue.dll</code> from <code>C:\Program Files (x86)\CCP\EVE\bin</code> to your desktop as well as the <code>BlueAutoPatcher</code> ##Run the <code>BlueAutoPatcher</code> as administrator. It should auto detect the <code>blue.dll</code> file on your Desktop. ##Click '''Patch''' and wait for the file to be patched. It should say success at the bottom and auto close itself. ##Copy the <code>blue.dll</code> file back to <code>C:\Program Files (x86)\CCP\EVE\bin</code> replacing the existing blue.dll file with the patched one. ##Your <code>blue.dll</code> should now be patched. If that doesn't work you may have downloaded a patch for a newer version. Try downloading the specific exe for 360229 [https://github.com/stschake/blue_patcher/blob/f16ba3ceb3c439fd42f5b3fe0abf241ca60828bc/blue_patcher.exe from here]. # Go back a directory to the EVE directory and edit your <code>common.ini</code> file. Replace the line <code>cryptoPack=CryptoAPI</code> with <code>cryptoPack=Placebo</code> #Save your <code>common.ini</code> file and close it. #Then edit the <code>start.ini</code> file by replacing <code>server=Tranquility</code> with <code>server=<your_server_ip_or_hostname_here></code> # Save the <code>start.ini</code> file and close it. #Navigate to your desktop. Here should be a Icon named <code>EVE</code> #Right click this icon and click properties. #Edit the Target box to be <code>"C:\Program Files (x86)\CCP\EVE\bin\ExeFile.exe"</code> ##Note: This is assuming that you haven't changed the default installation directory #Click <code>Apply</code> and then <code>Okay</code> Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client. ==Test and Report!== Yes! We know there are bugs and missing features! '''Notice:''' There are many things partially implemented. These are not fully working and will have and cause errors. Don't worry. The EVEmu development team is slowly fully implementing these features as testing happens. To get these features implemented faster please test and open issues to help the developers fix bugs. See [[Next Steps]] to learn how to setup your market, and how to debug your build. [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience. You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status. [[Getting Started|See this article]] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. b0528abb9a3a8d4f0296345fd76b3403799d4b29 Testing EVEmu 0 25 418 325 2021-05-05T07:34:59Z Jdhirst 10 wikitext text/x-wiki If you don't want to write code, you can test EVEmu! Just follow directions above under EVEmu Crucible Server on the wiki home page to either build from source or get the nightly builds for your machine, modify the client, fire it up and start trying things. Experience with EVE live is very helpful since it will provide you with a reference for how in-game features are supposed to work. ==How to test== * Install EVEmu Server * Install Client * Connect and use all features ab2a349064bd08d66b22f34f429db167f2ec618e Old Wiki:Quick Start Guide 0 114 419 140 2021-05-05T07:35:59Z Jdhirst 10 wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <div id="mw-content-text" class="mw-content-ltr" lang="en" dir="ltr"> {| |align="center" width="50%"| GETTING STARTED: |align="center" width="50%"| [[Category_Crucible.html|FOR DETAILED INSTRUCTIONS CLICK HERE]] [[New_Users_Guide.html|For users who are new]] to build servers and would like some background information on what they are doing for learning please go [[New_Users_Guide.html|here]] |- | align="center" | STEP #1 - [http://wiki.evemu.dev/index.php?title=Client_Setup&action=edit&redlink=1 Configure the Client!] | align="center" | Configure your Client <span class="underline">[https://github.com/bluepatcher/blue_patcher/archive/master.zip Get this ZIP package for Crucible]</span> and follow the instructions in the [http://wiki.evemu.dev/index.php?title=Client_Setup&action=edit&redlink=1 Readme.md] file to &quot;complete&quot; your client configuration.<br /> <span class="underline">'''NOTE:''' Do NOT run the Client from the icon [the launcher] you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe'''</span> |- | align="center" | STEP #2 - Get the Server! | align="center" | TWO Options:<br /> # USE PRE-BUILT BINARIES: <span class="underline">[http://builds.evemu.org/crucible_360229/ pre-compiled binaries for your platform]</span>) - '''Recommended for New Users''' You will need both *.7z files and the binary. # BUILD IT - Build Instructions can be found below in the LEFT column ([[Category_Crucible.html|Crucible is our Current Development]]) |- | align="center" | STEP #3 - Configure and Setup the Server! | align="center" | Once you either built or downloaded pre-built server, <span class="underline">[[Category_Crucible.html#STEP_3.5_-_Server_Configuration|follow these instructions]]</span> to configure and setup your server. |- | align="center" | STEP #4 - Test and Report! | align="center" | Yes! We know there are bugs and missing features!<br /> <span class="underline">[[Server_Status_(Crucible).html|Click here]]</span> to see a list of known working and missing/broken features of the EVE Online experience.<br /> You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the <span class="underline">[[Server_Status_(Crucible).html|Project Status]]</span>.<br /> <span class="underline">[[Category_Testing_EVEmu.html|See this article]]</span> for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. If you want to report bugs report them [http://bugzilla.evemu.net/ here] |} </div> ff6a50e04ebd395fd95fb1596af78052d18a5a06 Quick Start Guide 0 21 420 326 2021-05-05T07:56:22Z Jdhirst 10 Removed link to client wikitext text/x-wiki == '''Client configuration''' == Make sure to uncheck the run eve box before finishing the install, this may be difficult to see on some wine builds as the dialog is partially obscured. '''Get a copy of the blue patcher [https://files.evemu.dev/cruc/BlueAutoPatcher.exe >>> DOWNLOAD HERE <<<] '''and follow the instructions in README.md. Your client is now ready to run. '''NOTE:''' Do NOT run the Client from the icon you get after installation. Change it to run the '''/bin/exefile.exe''' instead of the '''eve.exe '''or you will get the launcher and that will attempt to contact CCP and automatically update the client.</div> == '''Server configuration (From source)''' == '''SERVER COMPILATION:''' sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential g++ cmake git sudo apt-get install libtinyxml2.6.2-dbg libtinyxml2.6.2 libmysql sudo apt-get install zlib1g-dev zlib1g-dbg sudo apt-get install libboost1.54 git clone https://github.com/EvEmu-Project/evemu_Crucible cd evemu_Crucible mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist .. make -j(Number of cores you have available) make install '''DATABASE SETUP:''' '''NOTE:''' * ''%devRoot%'' is where the development files are located. * These may be the same location but that is not necessary. # Open a terminal and go to the directory '''%devRoot%/evemu_Crucible/sql/''' # Install and setup your database software, for EVEmu we use MariaDB sudo apt-get install mariadb-server sudo mysql_secure_installation # Open your MySQL shell and input the following: create database evemu; GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY 'YOURPASSWORD'; # In the same SQL directory, run install.sh if you're running Linux or install.bat on Windows # Optionally you can seed the market by running these SQL queries: use evemu; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_data.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_market.sql; source %devRoot%/evemu_Crucible/sql/seed_and_clean/seed_station_market.sql; '''FINAL STEP:''' # Open eve-server.xml which if you did everything right, should be in %devRoot$/evemu_Crucible/build/dist/etc # Scroll towards the bottom of the file, to the database connection info, change <host>db</host> to <host>localhost</host> and save it. # Optionally, you can also move a directory back to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files. # To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable. ./eve-server == Test and Report! == Yes! We know there are bugs and missing features! [http://evemu.wikia.com/wiki/Crucible_Project_Status Check out our current project status] to see a list of known working and missing/broken features of the EVE Online experience.<br />You can request to be part of the Testers Group. Just head into our IRC channel and get to know some of them, request a forum account and start testing against the Project Status.<br />[http://evemu.wikia.com/wiki/Testing_EVEmu See this article] for specific information on how to go about testing and creating reports and submitting bug/feature reports on our Github project page. 592ff8c3bace2f15751ef34297befe189c0a7ada Installing without docker 0 414 618 2021-07-26T19:57:41Z N3ural 402 First version of this article. Will verify all steps again at some later point. wikitext text/x-wiki You need Ubuntu Server 18.04 for this guide to work! I could not make it work with Ubuntu Server 20.04. See: [https://forums.evemu.dev/topic/13/compiling-the-source/2 compiling-the-source]<br> ''Note: All passwords will be "1337" in this guide. Please change them accordingly.''<br> cmake will download the correct version of libboost. (Do not try to install the specified libboost1.54 manually.)<br> Update and install some dependencies:<br> <code> sudo apt-get update && sudo apt-get upgrade<br> sudo apt-get install build-essential g++ cmake git<br> sudo apt-get install libtinyxml2.6.2v5-dbg libtinyxml2.6.2v5 libmysqlclient-dev<br> sudo apt-get install zlib1g-dev zlib1g-dbg<br> </code> Download the latest codebase into your home directory and build:<br> <code> cd<br> git clone https://github.com/EvEmu-Project/evemu_Crucible<br> cd evemu_Crucible<br> mkdir build<br> cd build<br> cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=dist ..<br> make install<br> </code><br> Database install:<br> <code> sudo apt-get install mariadb-server<br> sudo mysql_secure_installation<br> </code> Database setup:<br> Open your MySQL shell via mysql -u root -p and input the following:<br> ''Note: This will prompt you for the password you set in the Database install Step''<br> <code> create database evemu;<br> GRANT ALL ON evemu.* TO 'evemu'@'localhost' IDENTIFIED BY '1337';<br> </code> Some configuring:<br> <code> ./get_evedbtool.sh<br> nano evedb.yaml<br> change password field to 1337<br> ./evedbtool install<br> </code> Edit eve-server.xml:<br> <code> nano /evemu_Crucible/build/dist/etc/eve-server.xml<br> </code> Scroll to bottom, find the <database> section, make it like this:<br> <code><br> <host>localhost</host><!-- must be 'localhost' for socket connection --><br> <username>evemu</username><br> <password>1337</password><br> <db>evemu</db><br> <port>3306</port><!-- 3306 default --><br> <ssl>false</ssl><!-- bool enable ssl for db connection (NOTE: NOT coded. DO NOT USE) -not needed when using socket under li$<br> <compress>false</compress><!-- bool compressed protocol for client server communication - not sure if needed. --><br> <useSocket>false</useSocket><!-- bool use socket connection instead of port (MUST be local) (SIGPIPE hits on debug code) --><br> <autoReconnect>true</autoReconnect><!-- bool enable auto Reconnect on lost connection --><br> <dbTimeout>2</dbTimeout><!-- seconds timeout value for db response, in seconds default: 2s **NOT USED** --><br> <pingTime>10</pingTime><!-- minutes ping db every x minutes default: 10m **NOT USED** hard-coded to 10m --><br> </code> Final Steps:<br> Optionally, move to %devRoot$/evemu_Crucible/build/dist/ and make a 'logs' directory. This will be where EVEmu will be able to save log files.<br> To finally run your EVEmu server, navigate to the %devRoot$/evemu_Crucible/build/dist/bin folder and run the eve-server executable.<br> Create a run script:<br> <code> cd<br> touch runevemu.sh<br> nano runevemu.sh<br> </code> Enter the following:<br> <code> cd ~/evemu_Crucible/build/dist/bin<br> ./eve-server<br> </code> Finally, start your EVEmu server with a terminal:<br> <code> sh runevemu.sh<br> </code> b21d414c47c812a04c0ccf283ad6cc280bb6f398 VPS Setup Guide 0 1751 1998 2021-09-06T07:58:53Z Jdhirst 10 Moving to dedicated setup page as not everyone will be using a VPS and this clutters the Getting Started page. wikitext text/x-wiki ====<u>Getting your VPS</u>==== Let's start with getting you a VPS. There are multiple providers that you can rent a VPS from on a monthly basis. EVEmu requires at least '''1 core, 1GB RAM, x86_64, and a network connection''' to run. So what this means is that we need to have at least 1 CPU core with 1GB RAM, an active network connection, and be running on the x86_64 system architecture. We suggest choosing Ubuntu Server 18.04 or greater as your operating system. Currently Ubuntu Server 18.04 and 20.04 are the recommended long term support variants of Ubuntu Server. ======<u>Popular Providers</u>====== *[https://aws.amazon.com/ Amazon Web Services (AWS)] *[https://www.linode.com/ Linode] *[https://www.digitalocean.com/products/droplets/ Digital Ocean] *[https://www.hetzner.com/cloud Hetzner] Any of these providers will work for setting up EVEmu. We recommend doing research and figuring out the one that works best for you and your budget. All of these providers also include instructions on how to setup and login to your instance. We'll leave it up to them to explain how to login to your instance besides this brief synopsis. ====<u>Logging into your VPS</u>==== All of the providers listed above have some documentation on how to login to your instance. We recommend while creating your instance that you create a '''SSH (Secure Shell Protocol) KeyPair.''' This will allow you to be able to login to your instance from home. Some of the above providers allow for you to login to the server from your browser if you did not or do not want to create one of these key pairs. =====Windows===== To login via SSH to your new instance you are going to need to install a program called [https://www.putty.org/ PUTTY.] This is a SSH client for Windows and is extremely popular throughout the IT Industry. Once this program is installed '''Double Click''' to open it. You are going to put your servers hostname or IP in the box labeled Hostname or IP Address. Next steps will differ depending on your authentication method. ======Password Login====== If you have a password to login to your instance you will click connect. You will be prompted with a terminal windows. It will first prompt you for a username. As we are using ubuntu you will enter the username of <code>ubuntu</code> and click Enter. Next it will prompt you for a password. Copy the password from where you have stored it and '''Right Click''' within the terminal window. You will not see any difference in the terminal as it hides the password by default. Click Enter. After a few seconds you should be logged into your new instance. ======Key Based Login====== If you are using Key Based login you will need the private key that you received when you setup the instance. You either generated this key yourself or you were prompted with a download for it. Locate it now. Once you have your key located navigate to the windows search bar. Search for '''Puttygen'''. Open this program. You will be prompted with a window similar in style to Putty. About halfway down the window on the right hand side is a button called '''Load.''' Click this button and navigate to where you located your private key earlier. It will at first not show up. In the bottom right of the window you will have to change the file type to '''All Files''' to be able to see your private key. Once you can see it click it and select Okay. You will be prompted with a pop up window stating that your key was successfully imported. Click '''Save Private Key''' and save it in a place that is memorable to you. Next, locate the file you just saved. Right click it and select '''Load into Pagent'''. Once this is done please go back to the Putty window and click '''connect.''' You should be logged into your new instance within a few seconds. =====Linux===== To login via SSH to your new instance with Linux is quite simple. To begin with locate the Private Key that you received when you setup your instance. Remember where this key is located. I suggest putting it in a memorable place as you will need it every-time you login to your instance. Open your terminal. Navigate with <code>cd</code> to where your private key is located. Next run <code>chmod 0400 privatekeyfile.pem</code>. This will change the security of your private key so that it can be used by the Linux SSH client. Once you have run that command you are ready to connect to your instance. Type <code>ssh -i privatekeyfile.pem ubuntu@server_ip_or_hostname_here</code>. You will shortly be prompted with your instance all logged in and ready to go. 5ddf7c26bf2699ec813e854dba4563a1a846420f FAQs 0 2678 2936 2021-10-13T17:03:37Z Jdhirst 10 Tips... wikitext text/x-wiki Frequently Asked Questions: Q: How do I access the shell from the server or db docker containers? A: to get into the docker container you can use docker exec -it <container name> /bin/bash Q: How do I get console access to the EVEmu server container? A: to get game console access, you can use docker attach <container name> Q: How do I copy files into the EVEmu server container? A: to copy files into the container use docker cp <file> <container name>:<path> Q: How do I get a mysql shell from the db container? A: for the db container, if you want a mysql shell use docker exec -it <db container name> mysql -uevemu -pevemu evemu Q: How do I access the mysql port on the server? A: This port not exposed by default, only if manually exposed by editing the compose file (uncomment the port 3306 line) Q: HELP! My db is slow!!!! A: protip, If your DB is slow, its likely due to your system not being able not being able to handle a large amount of seeded market data. This data is not required for testing as players can use the ".create" command to create whatever item they want. However, if this is really necessary, ensure that only 1 or 2 regions are seeded, and the saturation level is low such as 0.4 or even lower. bab4f2e8d1ad153f09dac5a080d444c759a1dfae 2939 2936 2021-10-17T18:04:14Z Jdhirst 10 wikitext text/x-wiki Frequently Asked Questions: Q: How do I find the names of the containers which are currently running? A: Use the command docker ps to list running containers Q: How do I access logs from my server container? A: Use the command docker logs <server container name> Q: How do I access the shell from the server or db docker containers? A: to get into the docker container you can use docker exec -it <container name> /bin/bash Q: How do I get console access to the EVEmu server container? A: to get game console access, you can use docker attach <container name> Q: How do I copy files into the EVEmu server container? A: to copy files into the container use docker cp <file> <container name>:<path> Q: How do I get a mysql shell from the db container? A: for the db container, if you want a mysql shell use docker exec -it <db container name> mysql -uevemu -pevemu evemu Q: How do I access the mysql port on the server? A: This port not exposed by default, only if manually exposed by editing the compose file (uncomment the port 3306 line) Q: HELP! My db is slow!!!! A: protip, If your DB is slow, its likely due to your system not being able not being able to handle a large amount of seeded market data. This data is not required for testing as players can use the ".create" command to create whatever item they want. However, if this is really necessary, ensure that only 1 or 2 regions are seeded, and the saturation level is low such as 0.4 or even lower. 7309668fbea27e93972be5aa864d6293d9d56941 Main Page 0 2 2937 390 2021-10-13T17:06:42Z Jdhirst 10 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Estimated overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! |- |} <br /> <br />Have Questions? [[FAQs|Read the FAQs!]] Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with it.<br> The [[Crucible Project Status|'''Crucible Project Status''']] page lists what we have implemented by system and an estimated completion status.<br> If you like EVE Online and you are a C++ programmer, we need you!<br> We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. If you don't know anything about C++ code, you can still help!<br> We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you've ever thought about learning C++, you are welcome to join in! EVEmu is a learning project. Get on [[EVEmu Connect#IRC EVEmu|Discord]] and talk with us!<br> You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} [[FAQs|Frequently Asked Questions]] | valign="top" | {{:Main_Page/Developer_Links}} |} <br> Thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]] or try the [[Special:Search|site search]]. -- The EVEmu Team 9cc2c15d3cbc4f74a48f32910e6b8048a1d6822d 2938 2937 2021-10-13T17:07:07Z Jdhirst 10 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Estimated overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! Have Questions? [[FAQs|Read the FAQs!]] |- |} <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with it.<br> The [[Crucible Project Status|'''Crucible Project Status''']] page lists what we have implemented by system and an estimated completion status.<br> If you like EVE Online and you are a C++ programmer, we need you!<br> We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. If you don't know anything about C++ code, you can still help!<br> We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you've ever thought about learning C++, you are welcome to join in! EVEmu is a learning project. Get on [[EVEmu Connect#IRC EVEmu|Discord]] and talk with us!<br> You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | {{:Main_Page/Admin_Links}} [[FAQs|Frequently Asked Questions]] | valign="top" | {{:Main_Page/Developer_Links}} |} <br> Thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]] or try the [[Special:Search|site search]]. -- The EVEmu Team 687117104d941102449e32f00afe48f38b3a6e4f 2940 2938 2022-02-17T02:13:07Z DarksHeiress 7 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Estimated overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! Have Questions? [[FAQs|Read the FAQs!]] |- |} <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with it.<br> The [[Crucible Project Status|'''Crucible Project Status''']] page lists what we have implemented by system and an estimated completion status.<br> If you like EVE Online and you are a C++ programmer, we need you!<br> We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. If you don't know anything about C++ code, you can still help!<br> We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you've ever thought about learning C++, you are welcome to join in! EVEmu is a learning project. Get on [[EVEmu Connect#IRC EVEmu|Discord]] and talk with us!<br> You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | '''Use these links to learn about how to administer a server''' * [[New Users Guide]] * [[List of Admin and GM Commands]] * [[FAQs|Frequently Asked Questions]] | valign="top" | {{:Main_Page/Developer_Links}} |} <br> Thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]] or try the [[Special:Search|site search]]. -- The EVEmu Team 3384ecbc20d7482221edcb9fe448a2f0a27082ff 2941 2940 2022-02-17T02:13:39Z DarksHeiress 7 wikitext text/x-wiki {| style="width: 100%; height:50px; font-weight: normal; border:0px;" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Welcome to EVEmu - the ONLY EVE Online Emulator! |- |} <br /> <br /> {| style="width: 100%; height:50px; margin-bottom: 20px; font-weight: normal; border: 5px solid rgb(30, 83, 135);" align="left" cellspacing="0" ! style="height: 50px; width: 70%; font-size:18px; font-weight:bold; padding:5px;" | Estimated overall progress: 59.5% Visit [[Crucible Project Status]] for more info Check out the [[Old Wiki|Old Wiki Import]]! Have Questions? [[FAQs|Read the FAQs!]] |- |} <br /> Thanks for visiting our wiki. This is the main page for our project and we're happy you stopped by to see what we're doing. '''EVEmu''' is an EVE Online Server Emulator that is a 100% open-source home-grown server written in C++, compiled for Windows 32/64 bit and Linux 32/64 bit environments. The Server Emulator has been in development by a core handful of people who appear now and then for over 15 years. This project was taking a hiatus for a while, but is now back with a vengeance.<br> EVEmu supports the EVE Online '''Crucible 1.6.5''' client and we're staying with it.<br> The [[Crucible Project Status|'''Crucible Project Status''']] page lists what we have implemented by system and an estimated completion status.<br> If you like EVE Online and you are a C++ programmer, we need you!<br> We are always in need of good, seasoned C++ developers for the [[:Category:Crucible|Main Server Emulator software]]. If you don't know anything about C++ code, you can still help!<br> We're always looking for people to test the server and find bugs for our developers to fix! You can download and test the EVEmu server software. Visit our [[New Users Guide]] for more information. We're also always looking for individuals who can write documentation and guides for our users. Our Wiki is our #1 source of information relating to EVEmu and its differences and similarities to EVE Online and we need your help to make sure it is up to date with the correct information. If you've ever thought about learning C++, you are welcome to join in! EVEmu is a learning project. Get on [[EVEmu Connect#IRC EVEmu|Discord]] and talk with us!<br> You can also [[Getting Started|get started learning the server codebase]] while taking advantage of our experienced C++ developers to learn the language alongside some [[Getting Started#Getting Started|tutorials]]. ---- For quick navigation to the most popular and/or important areas of our website, check out these helpful links: '''New Users''' * [[EVEmu Connect|Connect with us via Discord]] * [[New Users Guide]] - Get Started with EVEmu! '''Developers''' * [[EVEmu Developers Hub|Developer Central]] - Learn how EVEmu is an EVE Online Server Emulator and how you can help * [[Recent Project Activity]] - Here's what's been going on lately ---- Here are what some of the people who've stopped by have said about our project (circa 2009-2010): "Well, I'm flying around in 1.6.4 with evemu and, for the current state of development, it's working pretty damn well." "Great work devs." .... and then I LOL'd -- Aknor "[17:30] <@M4ksiu> pure awesomeness" "[08:35] <+B3N4K-WIN> Well at first i was reading forums and then someone there said something about private servers. So i was googling about private servers but didn't find anything. And then on like 10th google results page there was evemu git link and i was like "WOW!! I thought it's impossible to make emulator! How did they do that?!"... And 2 hours later i was flying in scam-free Jita :)" {| style="border-collapse: collapse;" cellpadding="6" width="100%" | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | Server Projects | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="20%" | EVEmu Documentation | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="25%" | Server Administrators | style="font-weight: bold; text-align:center;border-style:solid;border-width: 1px;" width="33%" | Developers |- style="border-style:solid;border-width: 1px;" | valign="top" | {{:Main_Page/Server_Projects_Links}}<nowiki></nowiki> | valign="top" | {{:Main_Page/EVEmu_Documentation_Links}} | valign="top" | '''Use these links to learn about how to administer a server''' * [[New Users Guide]] * [[List of Admin and GM Commands]] * [[FAQs|Frequently Asked Questions]] | valign="top" | {{:Main_Page/Developer_Links}} |} <br> Thank you for visiting our site.<br> If there is something you cannot find, ask us in [[EVEmu Connect|Discord]] or try the [[Special:Search|site search]]. -- The EVEmu Team c8bea3cf1f70f3ac7e31836c1a9637396c0e48a1 Dungeon Editor 0 2679 2943 2023-02-14T09:28:04Z Mcp77 5421 Created wikitext text/x-wiki Basic workflow: # Create a new dungeon with <code>./evedbtool dungeon new</code> you'll be asked for the archetype (type of dungeon) and faction. # Add a room or multiple to the dungeon with <code>./evedbtool dungeon add-room</code> # Start the server # Right click your ship (while in space, preferably in a location not near any existing structures to avoid clipping), go to <code>GM / WM Extras > Open Dev Window</code> (you may have to do this twice due to a known client bug) # In the Dev window, click on Dungeon Editor # In the dungeon editor window, select the dungeon you want to edit by clicking search then selecting from the dungeon list. # Select the room you want to edit, and click edit room. # Now you are able to add objects, move them and organize everything, once you are done, save the room. '''NOTE:''' If you have more than one room, an acceleration gate '''must''' be added to all rooms before the last one, or the player won't be able to navigate there. '''NOTE 2:''' The only current way of playtesting your dungeon is to reload the server and let the DungeonMgr spawn it in like a regular anomaly. I'm currently working on implementing the Play Dungeon button in the editor and will let you all know when it is available in staging. 0fffcf03e4c8e9455002ff6aea7c58d9c8c9fa1a 2945 2943 2023-02-14T09:36:33Z Mcp77 5421 Testing upload Image wikitext text/x-wiki Basic workflow: # Create a new dungeon with <code>./evedbtool dungeon new</code> you'll be asked for the archetype (type of dungeon) and faction. # Add a room or multiple to the dungeon with <code>./evedbtool dungeon add-room</code> # Start the server # Right click your ship (while in space, preferably in a location not near any existing structures to avoid clipping), go to <code>GM / WM Extras > Open Dev Window</code> (you may have to do this twice due to a known client bug) # In the Dev window, click on Dungeon Editor # In the dungeon editor window, select the dungeon you want to edit by clicking search then selecting from the dungeon list. # Select the room you want to edit, and click edit room. # Now you are able to add objects, move them and organize everything, once you are done, save the room. '''NOTE:''' If you have more than one room, an acceleration gate '''must''' be added to all rooms before the last one, or the player won't be able to navigate there. '''NOTE 2:''' The only current way of playtesting your dungeon is to reload the server and let the DungeonMgr spawn it in like a regular anomaly. I'm currently working on implementing the Play Dungeon button in the editor and will let you all know when it is available in staging. <nowiki>[[File:OpenDevWindow.png]]</nowiki> 30e49f6184cbe4245ec3cc663a3e14e53d0c0f49 2948 2945 2023-02-14T09:44:44Z Mcp77 5421 Uploaded Images wikitext text/x-wiki Basic workflow: # Create a new dungeon with <code>./evedbtool dungeon new</code> you'll be asked for the archetype (type of dungeon) and faction. # Add a room or multiple to the dungeon with <code>./evedbtool dungeon add-room</code> # Start the server # Right click your ship (while in space, preferably in a location not near any existing structures to avoid clipping), go to <code>GM / WM Extras > Open Dev Window</code> (you may have to do this twice due to a known client bug) # In the Dev window, click on Dungeon Editor # In the dungeon editor window, select the dungeon you want to edit by clicking search then selecting from the dungeon list. # Select the room you want to edit, and click edit room. # Now you are able to add objects, move them and organize everything, once you are done, save the room. '''NOTE:''' If you have more than one room, an acceleration gate '''must''' be added to all rooms before the last one, or the player won't be able to navigate there. '''NOTE 2:''' The only current way of playtesting your dungeon is to reload the server and let the DungeonMgr spawn it in like a regular anomaly. I'm currently working on implementing the Play Dungeon button in the editor and will let you all know when it is available in staging. [[File:OpenDevWindow.png|left]] [[File:OpenDungeonEditor.png|left]] [[File:DungeonEditorSelectRoom.png|left]] e907f8805a7de2fb2de0840fad0f9538825bbecf File:OpenDevWindow.png 6 2680 2944 2023-02-14T09:33:10Z Mcp77 5421 wikitext text/x-wiki da39a3ee5e6b4b0d3255bfef95601890afd80709 File:OpenDungeonEditor.png 6 2681 2946 2023-02-14T09:42:19Z Mcp77 5421 OpenDungeonEditor wikitext text/x-wiki == Summary == OpenDungeonEditor 614f9afac3d076f2b997d7a49e3f5bbf06c818e5 File:DungeonEditorSelectRoom.png 6 2682 2947 2023-02-14T09:43:24Z Mcp77 5421 DungeonEditorSelectRoom wikitext text/x-wiki == Summary == DungeonEditorSelectRoom 3e199dd9ccae312780b3adea1b3f1f63a29c2f55